我有一个ViewStack,里面有一堆NavigatorContainer。每个NavigatorContainer包含一个不同类别的应用程序设置。
我希望能够显示一个弹出窗口,提示用户是否尝试离开当前的NavigatorContainer而不保存他们对容器设置所做的更改。
什么是理想的事情就像改变' List组件中的事件,您可以取消或推迟事件。在ViewStack中对change事件调用preventDefault()并不能防止索引发生变化。
有没有办法以最少的箍跳?
由于
答案 0 :(得分: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>
答案 1 :(得分:0)
如果索引更改没有发生任何可怕的事情,为什么不保留当前索引,然后在更改事件中弹出它们并发出警报?