2012-04-12 9 views
0

Я новичок в Sencha Touch 2 и задаюсь вопросом относительно навигации между видами. Каков наилучший способ навигации между различными видами? Я попытался использовать предоставленный класс NavigationView, но он не предлагает всю функциональность, которую я хочу.ST2 навигация между видами

В настоящее время я использую простой Ext.Container как Viewport для своего приложения. Я объявил refs взглядов и, когда я меняю на новый взгляд в моем controller я в настоящее время сделать это следующим образом:

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

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

Но I'm не уверен, что это правильный подход и couldn't найти правильное documenation , В настоящее время мне кажется, что controller теряет след refs, когда я вручную уничтожаю представления. Итак, каков наилучший способ перемещения назад и вперед между видами (аналогично навигационным push() и pop())? Должен ли я уничтожить старый вид и добавить новое представление? Или я просто скрываю старый вид и добавляю новое представление?

ответ

0

Если вы хотите настроить ваши представления как можно бесплатные, Ext.NavigationView НЕ рекомендуется. Вместо этого используйте базовые типы, такие как: Ext.Container (рекомендуется), Ext.Panel и т. Д.

рефов все еще работает каждый раз, когда вы уничтожить или добавить свои взгляды снова, при условии, что ваш компонент доступен.

Но как новичок, простой подход (но не оптимальный для производительности), я мог бы предложить вам создать все необходимые компоненты и просто активировать/деактивировать их при необходимости.

Если вы хотите активировать представление, во-первых, вы должны найти родителя этого вида. Например, у вас есть Ext.Container, который имеет в нем три панели. Затем, если вы хотите активировать вторую панель этого контейнера, используйте setActiveItem(yourContainerRef, 1) (без анимации) или animateActiveItem(yourContainerRef, 1, {type: 'slide'})

+1

Спасибо за разъяснение. – dp1000

Смежные вопросы