Sencha Touch导航视图自动销毁

时间:2012-10-01 21:28:59

标签: sencha-touch sencha-touch-2

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

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

refs: {
    searchView: 'searchview'
}

当我想要呈现搜索视图时,我将其推入导航视图中,如下所示:

navView = this.getNavView();                  // Defined
navView.push([this.getSearchView()]);         // Defined by refs

问题是当用户完成搜索并按下视图上的后退按钮时,searchView似乎被破坏,因此下次用户想要搜索某些内容时会导致麻烦getSearchView()方法现在返回null。

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

如果是这样,每次呈现搜索视图时,这是一个不好的解决方法吗?像

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

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:5)

你必须添加navigationview的配置

autoDestory:false

因此,您的搜索视图不会在导航视图的弹出事件中失效

答案 1 :(得分:3)

一旦弹出,在Sencha Touch 2.0中默认为NavigatioView将销毁该子组件。因此,对于您的情况,您可以毫不费力地使用它:

navView.push({
   xtype : 'searchview'
}); 

您可以强制不破坏NavigationView的子组件。但是,对于你的情况来说,无论如何,破坏似乎都是一种很好的做法。