2012-01-06 3 views
0

У меня есть ViewStack с кучей NavigatorContainers. Каждый NavigatorContainer содержит другую категорию настроек для приложения.Предотвращение ViewStack от изменения индекса

Я хотел бы иметь возможность отображать всплывающее окно с запросом пользователя, если они попытаются покинуть текущий NavigatorContainer без сохранения изменений, внесенных ими в настройки контейнера.

Что было бы идеальным, это что-то вроде события «change» в компоненте List, посредством которого вы можете отменить или отложить событие. Вызов функции preventDefault() в событии изменения в ViewStack не мешает изменению индекса.

Есть ли способ сделать это с минимальным обручем?

Благодаря

ответ

3

Это зависит от того, что меняется в вашем представлении. Например, если у вас есть ButtonBar, как вид чейнджером, то вы легко можете написать так:

 protected function btnBar_changingHandler(event:IndexChangeEvent):void 
     { 
      event.preventDefault(); 
      //enter code here 
     } 

и

<s:VGroup width="100%" height="100%" horizontalAlign="center"> 
      <s:ButtonBar id="btnBar" dataProvider="{viewStack}" requireSelection="true" changing="btnBar_changingHandler(event)"> 
       <s:layout> 
        <s:ButtonBarHorizontalLayout gap="2" /> 
       </s:layout> 
      </s:ButtonBar> 
      <mx:ViewStack id="viewStack" width="100%" height="100%"> 
       <s:NavigatorContent width="100%" height="100%" label="First View"> 
        <comp:FirstView/> 
       </s:NavigatorContent> 
       <s:NavigatorContent width="100%" height="100%" label="Second View"> 
        <comp:SecondView/> 
       </s:NavigatorContent> 
      </mx:ViewStack> 
    </s:VGroup> 
0

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

+0

Popping их назад, я понял, также вызывая changevent – Rupin

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