您需要一个数据模型对象来存储应用程序的数据。
数据模型是一个自定义的独立对象,可以从应用程序的任何位置访问。数据模型对象对任何视图或视图控制器一无所知。它只是存储数据和数据之间的逻辑关系。
当应用程序的不同部分需要写入或读取数据时,它们会写入并读取数据模型。在你的情况下,view1将在卸载时将其数据保存到数据模型,然后view2在加载时从数据模型读取数据(反之亦然)。
在设计正确的应用程序中,没有两个视图控制器应该可以访问另一个控制器的内部数据。 (视图控制器需要知道另一个控制器是否存在的唯一原因是它必须触发加载其他控制器。)
的快速和肮脏的方式来创建一个数据模型是将属性添加到应用程序的委托,然后使用调用从视图控制器应用程序的委托:
YourAppDelegateClass *appDelegate = [[UIApplication sharedApplication] delegate];
myLocalProperty = appDelegate.someDataModelProperty;
这对小项目,但作为工作你的数据变得越来越复杂,你应该为你的数据模型创建一个专用的类。
编辑:
澄清您的特定情况下,你会当接收机的viewController成为活动的呼叫添加到数据模型。
将数据放在init方法或viewDidLoad
中将不起作用,因为在UITabBar
中,用户可以来回切换而不卸载视图或重新初始化视图控制器。
检索更改数据的最佳位置是viewWillAppear
控制器方法。这样每次用户切换到该选项卡时,数据都会更新。
非常感谢。我现在使用单例方法。我还发布了一些很好的教程链接,其中描述了创建单例数据模型必须完成的步骤。 – 2010-03-04 02:21:20