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()]); 

非常感谢你的帮助!

4

2 回答 2

5

你必须添加导航视图的配置

autoDestory:false

因此,您的搜索视图不会破坏导航视图的弹出事件

于 2012-10-02T04:56:01.877 回答
3

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

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

您可以强制不破坏 NavigationView 的子组件。但是,对于您的情况,无论如何,破坏似乎都是一种好习惯。

于 2012-10-05T08:15:31.853 回答