我目前正在使用多个视图的应用程序,30多个ViewControllers。我正在使用故事板将视图流连接在一起。
我希望这样当用户离开一个ViewController时,当他们返回到该视图时,它将保持与用户输入的相同更改的相同状态。 (进入UITextFeild,UILabel,UITextView等。)
因为我有很多观点,所以不必将信息存储在全局变量或以下内容是理想的:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
提前致谢, 此致
答案 0 :(得分:2)
有很多方法可以存储数据;全局变量和默认系统通常不是最佳选择。听起来你应该考虑为你的应用程序开发一个真正的数据模型。模型是MVC中的M,它本质上是一个或多个对象,用于存储数据并管理应用程序的“业务逻辑”。
您的模型可能与单个可变字典一样简单,也可能是相互关联对象的复杂图形。我不会尝试在这里解释所有的MVC - 如果你不熟悉这个想法,你可以(应该)阅读它。但是当然可以创建一个模型来保存每个视图控制器的状态,当给定的控制器变为活动状态时,它可以设置其视图层次结构以匹配保存的状态。
答案 1 :(得分:1)
基本上你需要实现类似堆栈的东西,同时调用另一个viewController,你将它推入堆栈,保留viewController所处的状态。从堆栈中弹出将带来最后一次推送的viewController(及其状态)进行查看。
幸运的是,iOS中已有类似内容 - UINavigationViewController。它提供了诸如 -
之类的方法– pushViewController:animated:
– popViewControllerAnimated:
– popToRootViewControllerAnimated:
– popToViewController:animated:
This tutorial将告诉您如何在项目中实现此功能。所以不要通过storyBoard链接viewControllers,我建议你卷起袖子&在代码中实现所有这些。希望这可以帮助。