iPhone dev - 帮助使用Model

时间:2009-08-18 02:22:47

标签: iphone cocoa-touch model model-view-controller

  

(顺便说一下,我不使用Interface   生成器)

我有一个由根UIViewController组成的小项目,它使用UITabBar管理另外5个View Controllers,我没有使用UITabBarController。 Root View Controller只保留其一个View Controllers实例化,当选择了一个标签栏项时,与该标签关联的View Controller被实例化,旧的一个被删除,新的一个被添加为子视图和旧的一个被解除分配。

每个View控制器都有一个UIPickerView(除了具有UIDatePicker的UIPickerView)。当用户从选项卡1转到选项卡2并返回选项卡1时,我希望视图控制器在选择器中使用与之前相同的选定行进行实例化,即使它已被取消分配,所以我理解它最好使用Model类的实例来存储有关View Controller状态的信息,然后在每个View Controller中使用给定的参数初始化init方法,该参数是Model的一个实例。

有人可以帮帮我吗? Model类应该是什么样的?应该怎么命名?如何使用它的实例存储有关一个View Controller状态的信息,另一个实例存储有关另一个不同View Controller的信息?我真的希望这个简单的项目尽可能完美,并遵循MVC设计模式,所以我可以将所有其他标签栏应用程序基于此。

谢谢!

2 个答案:

答案 0 :(得分:0)

查看NSMutableDictionary,特别是写入和阅读plist文件的部分。我相信Apple有一个样本应用程序在某处使用这种方法。

基本上,您将视图层次结构写入字典并在应用程序退出时存储它。当您重新启动时,您会再次阅读并配置您的视图。

答案 1 :(得分:0)

好好对其他任何想知道这件事的人,我做了一个类,称之为Model,并使它成为一个带有Download SynthesizeSingleton.h.zip宏的单例。您可以使用KVO(键值观察)在模型中的内容发生变化时执行操作,了解Here,并且您可以使用有一个UITextField委托方法,用于编辑文本字段,并在该方法中为文本字段的模型中的ivar设置用户将其更改为的新文本。