基本上,我需要知道如何在将数据从一个视图传递到另一个视图时创建另一个textput字段,同时保存开始传递的数据。看一下:
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" title="HomeView">
<fx:Script>
<![CDATA[
protected function btn_addTask_clickHandler(event:MouseEvent):void
{
var tmpObj:Object = new Object();
tmpObj.firstTask = ti_input.text;
navigator.pushView(taskListView, ti_input.text);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place nonvisual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:VGroup height="100%" width="100%" >
<s:TextInput id="ti_input" prompt="Enter Text Here" />
<s:Button label="Add Task" id="btn_addTask" click="btn_addTask_clickHandler(event)"/>
</s:VGroup>
</s:View>
这是我的第一个视图。我希望用户能够在textInput字段中输入文本,并在下一个视图中看到它,但我希望下一个视图保存用户输入的内容,导航回第一个视图,然后从用户处获取另一个条目,并在第二个视图中创建另一个textInput字段。它就像一个记事本应用程序。用户在第一个视图中输入一个任务,然后他或她可以在第二个视图中看到它。然后,用户应该能够导航回第一个视图并创建另一个任务,该任务也进入第二个视图,但不替换输入的第一个任务。我的问题是在新数据进入第二个视图时创建新的textInput字段。什么好主意吗?也许文本输入字段不是我应该使用的视觉组件…
我不确定你是否正在搜索双向同步,或者如果只有一个视图应该显示在另一个视图中所做的更改。
但是无论如何,因为你不会在弹出实际视图时发送回数据(从第二个视图返回到第一个视图),你可以实现另一种方法:每当其中一个视图添加/删除/编辑一个值时,视图本身将把该值存储在另一个类中,这两个视图都可以访问(如果你想的话,可以是单例)。每次加载一个视图时 (view_activated handler) 直接从第三个类加载该值
为了将该值存储在分离的类中,如果两个视图都可以访问,则可以直接在该类中编写该值。或者您可以调度一个包含数据的自定义事件,这些数据将由您的分离类侦听并存储。