Sencha touch Sencha触摸导航视图自动销毁

Sencha touch Sencha触摸导航视图自动销毁,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我正在使用Sencha Touch 2中的导航视图在我的应用程序中提供视图导航 目前,我正在控制器的启动方法中使用创建视图对象的方法(比如说“VOCABI.view.Search”,使用xtype“searchview”),并通过在控制器配置中包含以下内容来引用它: refs: { searchView: 'searchview' } 当我想显示“搜索”视图时,我会将其推入导航视图,如下所示: navView = this.getNavView();

我正在使用Sencha Touch 2中的导航视图在我的应用程序中提供视图导航

目前,我正在控制器的启动方法中使用创建视图对象的方法(比如说
“VOCABI.view.Search”
,使用xtype
“searchview”
),并通过在控制器配置中包含以下内容来引用它:

refs: {
    searchView: 'searchview'
}
当我想显示“搜索”视图时,我会将其推入导航视图,如下所示:

navView = this.getNavView();                  // Defined
navView.push([this.getSearchView()]);         // Defined by refs
问题是,当用户完成搜索并按下视图上的“后退”按钮时,searchView似乎已被破坏,因此用户下次要搜索某个内容时,它会引发问题,因为
getSearchView()
方法现在返回空值

这是导航视图的默认行为吗?当调用方法
pop()
时,它会破坏弹出的视图吗

如果是这样的话,在每次显示搜索视图时创建它是否是一个糟糕的解决方法?像

Ext.create("VOCABI.view.Search");
this.getNavView().push([this.getSearchView()]); 

非常感谢你的帮助

您必须添加navigationview的配置

autoDestory:false

因此,您的搜索视图不会破坏导航视图的pop事件,一旦弹出,Sencha Touch 2.0中的默认值是NavigationView将销毁该子组件。因此,就您的情况而言,您可以放心地使用它:

navView.push({
   xtype : 'searchview'
}); 
您可以强制不销毁NavigationView的子组件。然而,就你的情况而言,似乎销毁将是一个好的做法