我完全迷路了。
问题是通过我的向导中的视图控制器传递数据。我的项目包含 4 个视图控制器:
- Step1ViewController,可填写名称
- Step2ViewController,可填写昵称
- Step3ViewController,可以填写邮箱地址,
- Step4ViewController,可填写兴趣,完成
所有视图控制器都被推送到导航控制器。可以通过单击导航工具栏上的栏按钮进入下一步。我想要实现的是收集步骤中的所有数据并在最后一步创建保存 NSManagedobject(通过单击完成按钮)。因此,当用户在步骤 2 中退出并重新启动应用程序时,应该没有保存的对象。所以他将重新启动向导。当核心数据中有一个人对象时,会加载另一个视图(这是委托类中的一个条件)
我知道当你有一个简单的模型模式时,可以使用 prepareForSegue 方法轻松地将数据传递给控制器。收集所有变量并创建和保存核心数据对象。为了将数据传递回上一步,我可以使用协议。
但是在我的应用程序中,我的模型模式要复杂得多。我的向导包含大约 18 个步骤,并且 Person 模型有很多相关模型(如培训计划、兴趣等),所以我认为在变量中收集所有数据并在最后一步将它们全部组合起来确实不是一个好方法。
做这个的最好方式是什么?
我上传了一个向导示例应用程序,其中包含几个步骤和 2 个模型(人员和兴趣(one-2-many))。希望这会让它更清楚。随意修改代码:https ://github.com/stalkert/WizardPrototype