I have a Sencha Touch 2 app with a single controller. That controller's init and launch functions fire as expected during the application's launch process. However, there are some situations in which they appear to fire again after that. One of the app's main views extends dataview.List, and presents the list using a template that causes it to render as a tiled list of thumbnail images. That view includes a listener that listens for tap events on those thumbnail elements and fires a local onElementTap method, which in turn fires an event that's caught by the controller and used to populate a detail view and make it the active item in the viewport. For most of the elements in the list, this works fine, but for the first one, tapping the element seems to also fire the controller's init and launch methods (usually, but not always). Stranger yet, tapping the second element in the list works correctly if I tap in the middle of the thumbnail, but has the same odd controller effect if I tap near the left edge of the thumbnail.

There is no place in my code where I attempt to forcibly fire the controller's launch or init functions, or to create a new instance of the controller class. Anybody got any ideas what bizarre thing I might have accidentally done that would cause this behavior?