Sencha touch 控制器失去对Sencha touch中按钮的参考

Sencha touch 控制器失去对Sencha touch中按钮的参考,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,控制器中的某些代码有问题。当我单击“上一步”按钮时,它会切换到另一个视图,但是当我返回到该视图时,单击处理程序不再工作 请参阅下面的代码 Ext.define('MyApp.controller.MyDetails', { extend: 'Ext.app.Controller', requires: [ 'TolMobile.view.MyDetails', 'Ext.field.Select', 'Ext.f

控制器中的某些代码有问题。当我单击“上一步”按钮时,它会切换到另一个视图,但是当我返回到该视图时,单击处理程序不再工作

请参阅下面的代码

Ext.define('MyApp.controller.MyDetails', {
    extend: 'Ext.app.Controller',

    requires: [
        'TolMobile.view.MyDetails',        

        'Ext.field.Select',
        'Ext.field.DatePicker'
    ],

    config: {
        refs: {

        },

        control: {
            "#btnMyDetailsBack": {
                tap: 'onBackButton'
            }
        }
    },

    onBackButton: function () {        
        MyApp.app.switchMainView('MyApp.view.Home', {});
    }

});
应用程序类别代码:

switchMainView: function (newView, config) {
    if (this.currentView != false) {
        Ext.Viewport.remove(this.currentView);
    }

    this.currentView = Ext.create(newView, config);
    // animateActiveItem - TODO animation not working (but shows ok)
    Ext.Viewport.animateActiveItem(this.currentView, { type: 'slide', direction: 'right' })
}
现在似乎可以使用以下命令而不是switchMainView()调用。 此代码在主视图控制器中的按钮单击时调用,现在动画工作,向前/向后。我真的很想知道为什么

 var detailsView = Ext.create('MyApp.view.MyDetails');   
            detailsView.setRecord(userRecord);
            Ext.Viewport.animateActiveItem(detailsView, { type: 'slide', direction: 'left' })

为什么不使用已经处理后退按钮的Ext.navigation.View。另外,我敢打赌控制台中有一个类似这样的警告:“使用已经使用的id(btnMyDetailsBack)注册组件…”我想准确地控制工具栏中的内容…似乎也没有收到警告…@jaffa您仍然可以在导航栏中放置项目:只需在
Ext.navigation.View
实例上使用
getNavigationBar().add()
。您的意思是“我想准确地控制工具栏中的内容”。有什么事情是你想阻止去那里,还是你想增加一些东西?