保存视图状态iphonesdk

保存视图状态iphonesdk,iphone,cocoa,cocoa-touch,Iphone,Cocoa,Cocoa Touch,目前我创建了两个视图,在第一个视图上有一个“下一步”按钮,单击它,它将转到第二个视图 然后在第二个视图中,我在标签中设置了一些值,当我单击“上一步”时,它将返回到第一个视图 问题:现在我回到第一个视图,如果我再次单击“下一步”按钮,我在第二个视图中设置的标签值将丢失 问题:如何保存状态,以便当我单击“下一步”按钮时,它将检测到标签先前已设置,并因此显示回先前的值。这取决于具体情况。有很多方法 我希望每次将第二个视图推到屏幕上时,都会创建它的新实例。在任何情况下,无论您是不是,都应该在模型中保存标

目前我创建了两个视图,在第一个视图上有一个“下一步”按钮,单击它,它将转到第二个视图

然后在第二个视图中,我在标签中设置了一些值,当我单击“上一步”时,它将返回到第一个视图

问题:现在我回到第一个视图,如果我再次单击“下一步”按钮,我在第二个视图中设置的标签值将丢失


问题:如何保存状态,以便当我单击“下一步”按钮时,它将检测到标签先前已设置,并因此显示回先前的值。

这取决于具体情况。有很多方法

我希望每次将第二个视图推到屏幕上时,都会创建它的新实例。在任何情况下,无论您是不是,都应该在模型中保存标签的值,而不是期望视图保留数据(请参见:MVC设计模式)。然后,在第二个视图控制器的
-viewDidLoad:
功能中,将标签的值设置为其先前的值。

MVC是您的朋友

视图仅显示存储在模型中的数据。因此,如果显示person信息,数据将存储在person对象中。您的视图将引用它正在显示的person对象,以便它可以读取数据。视图不在person对象上设置任何数据,这是通过控制器完成的。控制器通过保持对模型(数据)和视图的引用,将两者连接起来

用户单击显示的项目(例如修改用户名),这由控制器处理,控制器使用新名称更新人员模型。一旦操作完成,控制器要求视图在模型中重新显示数据


请查看苹果参考资料中的Model View Controller和UIViewController。

您好,感谢您的回复。是的,我设法按照你的建议去做,即在viewDidLoad函数中设置值。还想从你那里了解你提到的其他方式是什么?我想知道,如果我们通常有很多数据可以说,有没有更有效的方法?