我正在使用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()]);
非常感谢你的帮助!
答案 0 :(得分:5)
你必须添加navigationview的配置
autoDestory:false
因此,您的搜索视图不会在导航视图的弹出事件中失效
答案 1 :(得分:3)
一旦弹出,在Sencha Touch 2.0中默认为NavigatioView将销毁该子组件。因此,对于您的情况,您可以毫不费力地使用它:
navView.push({
xtype : 'searchview'
});
您可以强制不破坏NavigationView的子组件。但是,对于你的情况来说,无论如何,破坏似乎都是一种很好的做法。