目前我创建了2个视图,在第一个视图中,有一个下一个按钮,点击它后,它将转到第二个视图。
然后在第二个视图中,我在标签中设置了一些值,当我点击它时,它将返回到第一个视图。
问题:现在我回到第一个视图中,如果再次单击下一个按钮,我在第二个视图中设置的标签值将丢失。
问题:如何保存状态,以便当我单击下一个按钮时,它将检测到标签先前已设置,因此显示回原来的值。
答案 0 :(得分:1)
这取决于。有很多方法。
我希望每次将第二个视图推送到屏幕时,都会创建一个新的实例。在任何情况下,无论您是否,都应该在模型中保存标签的值,而不是期望视图保留数据(请参阅:MVC设计模式)。然后,在第二个视图控制器的-viewDidLoad:
函数中,将标签的值设置为其先前的值。
答案 1 :(得分:1)
MVC是你的朋友。
您的视图仅显示存储在模型中的数据。因此,如果您显示人员信息,则数据将存储在person对象中。您的视图将引用它正在显示的person对象,以便它可以读取数据。 View不会在person对象上设置任何数据,这是通过控制器完成的。您的控制器通过保持对两者的引用来桥接您的模型(数据)和视图。
用户点击显示的项目(例如修改用户名),这由更新具有新名称的人员模型的控制器处理。一旦操作完成,控制器就会要求视图在模型中重新显示数据。
在Apple的参考资料中查看Model-View-Controller和UIViewController。