Flex/AIR Mobile: TabbedViewNavigator selectedIndex не работает

У меня есть мобильный проект в FB 4.6 с TabbedViewNavigator. У меня есть 4 кнопки внизу, которые являются ViewNavigators и действуют как вкладки. В этом случае допустим, что вкладки помечены как ГЛАВНАЯ, ДОБАВИТЬ, УДАЛИТЬ и О ПРОГРАММЕ. Я столкнулся со следующей ситуацией:

  1. Пользователь нажимает вкладку ДОБАВИТЬ.
  2. На экране ДОБАВИТЬ пользователь нажимает на несколько ссылок, которые уводят их от первого представления вкладки ДОБАВИТЬ и к новому представлению вместе. Предположим, что активный вид называется PlayersView.
  3. Теперь пользователь щелкает другую вкладку, например, ГЛАВНАЯ.
  4. Пользователь решает вернуться на вкладку ДОБАВИТЬ. Однако при нажатии на вкладку ADD пользователь переходит к последнему представлению, которым в данном случае был PlayersView.

Как я могу изменить функциональность, чтобы при нажатии на вкладку пользователь ВСЕГДА попадал в свойство firstView этой вкладки. Как указано выше, этого не происходит. Я попытался создать прослушиватель IndexChangeEvent на tabbedNavigator, а затем изменить selectedIndex tabbedNavigator, однако это не работает.

protected function tabbedviewnavigatorapplication1_applicationCompleteHandler(event:FlexEvent):void {

      this.tabbedNavigator.addEventListener(IndexChangeEvent.CHANGE,onIndexChange);
}


protected function onIndexChange(event:IndexChangeEvent):void {

      this.tabbedNavigator.selectedIndex = event.newIndex;
      trace(' THIS DOESN'T WORK');
}

Любая помощь приветствуется. Заранее спасибо.


person azsl1326    schedule 29.05.2012    source источник


Ответы (1)


В вашем коде, когда вы устанавливаете

tabbedNavigator.selectedIndex 

вы переключаетесь между разными ViewNavigator, а не между разными Views внутри ViewNavigator.

Насколько я понимаю, вы пытаетесь остаться внутри одного стека ViewNavigator и выбрать первый View.

Допустим, у вас есть:

<s:navigators>
    <s:ViewNavigator id="addSomethingNavigator" firstView="views.AddView"/>
    <s:ViewNavigator id="deleteSomethingNavigator" firstView="views.DeleteView"/>
</s:navigators>

Вы можете перейти к первому View конкретного ViewNavigator следующим образом:

addSomethingNavigator.popToFirstView();
person onosendai    schedule 29.05.2012
comment
Спасибо. После того, как я задал вопрос, я понял, что на самом деле задаю два разных вопроса. Однако основной вопрос заключался в том, как вернуться к первому виду, на который вы действительно ответили. Спасибо за помощь. - person azsl1326; 29.05.2012