我有一个表单,它为用户提供了一个高级模式。我已经用Google搜索并查看了不同的SO问题(在控制器,协议之间共享数据,以及在segue之间传递数据),但我想知道是否有更好的方法。
我有没有办法让某种“主控制器”在3个不同的控制器之间来回传输时保存所有数据?
如果我可以保留第二个控制器的数据并允许我的用户在第三个控制器中进行快速前进编辑,同时保持其数据不变,那么现在就可以了。
提前致谢
以下是我的应用的快速演练:
* xcode5 / iOS7
答案 0 :(得分:0)
通常,我会将应用程序中使用的信息放在应用程序委托中,以便每个人都可以访问它。
另一种可能性是实现单例数据管理类来为您保留它。
在这种情况下,应用程序似乎真的是一个非常线性的流程,所以我只是将选择从vc1传递给vc2,然后在相应的prepareForSegue调用中再次传递给vc3。
答案 1 :(得分:0)
如果要将数据从一个视图控制器传递到下一个视图控制器并使用segues,则在prepareForSegue
的行中调用下一个视图控制器上的方法。例如,在ViewController1和ViewController2之间进行segue时,将此代码添加到ViewController1并在其他视图控制器中根据需要重复:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
ViewController2 *viewController = segue.destinationViewController;
[viewController configureWithSomeState:self.someState];
}
此代码假定someState
是ViewController1
上定义的属性。
DerivedNavigationController *navigationController = (DerivedNavigationController *)self.navigationController;
navigationController.someState...;