视图之间的ST2导航

时间:2012-04-12 12:19:27

标签: controller navigation sencha-touch-2

我是Sencha Touch 2的新手,对于视图之间的导航有一些疑问。在不同视图之间导航的最佳方式是什么?我尝试使用提供的NavigationView类,但它没有提供我想要的全部功能。

目前,我正在为我的应用使用简单的Ext.Container作为Viewport。我为视图声明refs,当我更改为controller中的新视图时,我现在这样做:

var oldView = this.getOldView();
Ext.destroy(oldView);

var newView = Ext.create('MyApp.view.MyView');
Ext.Viewport.add(newView);

但我不确定这是否是正确的方法,并且找不到合适的文件。目前在我看来,当我手动销毁视图时,controller会丢失refs的跟踪。那么在视图之间前后导航的最佳方法是什么(类似于NavigationView的push()pop())?我是否必须销毁旧视图并添加新视图?或者我只是隐藏旧视图并添加新视图?

1 个答案:

答案 0 :(得分:0)

如果您想根据需要自由定制视图,建议不要使用 Ext.NavigationView 。请改用基本类型,例如:Ext.Container(推荐),Ext.Panel等。

只要您的组件可用,每次销毁或再次添加视图时,

参考仍然有效。

但作为一个新手,一个简单的方法(但不是最佳的性能),我建议你创建所有需要的组件,并在需要时简单地激活/停用它们。

如果要激活视图,首先必须找到该视图的父视图。例如,你有一个 Ext.Container ,里面有三个面板。然后,如果要激活该容器的第二个面板,请使用setActiveItem(yourContainerRef, 1)(不带动画)或animateActiveItem(yourContainerRef, 1, {type: 'slide'})