【问题标题】:Saving View State iphone sdk保存视图状态 iphone sdk
【发布时间】:2009-05-25 02:17:06
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: iphone cocoa cocoa-touch


    【解决方案1】:

    这取决于。有很多方法。

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

    【讨论】:

    • 您好,感谢您的回复。是的,我设法按照您的建议在 viewDidLoad 函数中设置值。还想从您那里了解您提到的其他方式是什么?我想知道,如果我们通常有很多数据要说,有没有更有效的方法?
    【解决方案2】:

    MVC 是你的朋友。

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

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

    查看 Apple 参考资料中的 Model-View-Controller 和 UIViewController。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多