iPhone开发人员-使用模型的帮助

iPhone开发人员-使用模型的帮助,iphone,cocoa-touch,model,model-view-controller,Iphone,Cocoa Touch,Model,Model View Controller,(顺便说一下,我不使用界面 建筑商) 我有一个小项目,由一个根UIViewController组成,它用一个UIAbbar管理其他5个视图控制器,我不使用UIAbbarController。根视图控制器仅会实例化其一个视图控制器,当选择选项卡栏项时,与该选项卡关联的视图控制器将被实例化,旧的视图控制器将被删除,新的视图控制器将作为子视图添加,旧的视图控制器将被取消分配 每个视图控制器都有一个UIPickerView(具有UIDatePicker的控制器除外)。当用户从选项卡1转到选项卡2,再回到

(顺便说一下,我不使用界面 建筑商)

我有一个小项目,由一个根UIViewController组成,它用一个UIAbbar管理其他5个视图控制器,我不使用UIAbbarController。根视图控制器仅会实例化其一个视图控制器,当选择选项卡栏项时,与该选项卡关联的视图控制器将被实例化,旧的视图控制器将被删除,新的视图控制器将作为子视图添加,旧的视图控制器将被取消分配

每个视图控制器都有一个UIPickerView(具有UIDatePicker的控制器除外)。当用户从选项卡1转到选项卡2,再回到选项卡1时,我希望视图控制器在选择器中使用与以前相同的选定行进行实例化,即使它已取消分配,因此,我知道最好使用模型类的实例来存储有关视图控制器状态的信息,然后在每个视图控制器中创建init方法,该方法使用给定的参数进行初始化,该参数是模型的实例

有人能帮我吗?模型类应该是什么样子?它应该叫什么名字?它的一个实例如何用于存储一个视图控制器的状态信息,而另一个实例如何存储另一个不同视图控制器的信息?我真的很想让这个简单的项目尽可能完美,并遵循MVC设计模式,这样我就可以将所有其他选项卡栏应用程序都基于此


谢谢

看看
NSMutableDictionary
,特别是写和读plist文件的部分。我相信苹果公司已经有了一个使用这种方法的样本应用程序


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

好吧,对于其他对此感到疑惑的人,我创建了一个类,称之为Model,并使用宏将其设置为singleton。当模型中的内容发生变化时,您可以使用KVO(键值观察)进行操作,了解这一点,例如,您可以在编辑文本字段时使用UITextField委托方法,并在该方法中使用用户将其更改为的新文本在模型中为您的文本字段设置ivar。

我指的是视图何时解除分配,而不是应用程序何时退出。您仍然可以使用这种方法,但我建议不要在
dealoc
中执行此操作。在
-viewDidUnload
或类似方法中保存,然后在
-viewDidLoad
-viewwillbeen中恢复状态:
我想使用一个模型类,而不是属性列表文件。viewDidUnload永远不会被调用,因为当它不显示时,我会从内存中释放整个视图控制器。