我是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()
)?我是否必须销毁旧视图并添加新视图?或者我只是隐藏旧视图并添加新视图?
答案 0 :(得分:0)
如果您想根据需要自由定制视图,建议不要使用 Ext.NavigationView 。请改用基本类型,例如:Ext.Container(推荐),Ext.Panel等。
只要您的组件可用,每次销毁或再次添加视图时,参考仍然有效。
但作为一个新手,一个简单的方法(但不是最佳的性能),我建议你创建所有需要的组件,并在需要时简单地激活/停用它们。
如果要激活视图,首先必须找到该视图的父视图。例如,你有一个 Ext.Container ,里面有三个面板。然后,如果要激活该容器的第二个面板,请使用setActiveItem(yourContainerRef, 1)
(不带动画)或animateActiveItem(yourContainerRef, 1, {type: 'slide'})