在Xcode中,Utility Application模板使用以下项目生成项目:
MainView,MainViewController
和
FlipsideView,FlipsideViewController
在我的应用中,两个视图对应主UI和首选项屏幕。显然我希望prefs在主UI中反映并持久保存到磁盘以记住设置。我知道该怎么做。
问题是,在查看类似应用程序的示例代码时,我发现有些代码将大多数活动代码放在View中,而ViewController只是一个存根,而另一些则反过来。< / p>
在决定放置我的大部分功能时,是否有经验法则?
答案 0 :(得分:2)
如果您想成为MVC纯粹主义者,那么视图切换和事件处理等内容应该放在控制器中,视图中的视图构建代码应该放在视图中。
但如果您在整个应用程序中保持一致,那么可以在视图中添加一些应用程序逻辑。
答案 1 :(得分:2)
一种决定方法:如果您的应用获得内存不足警告,则默认行为是可能会销毁当前不可见的任何视图。这意味着如果您有任何您无法轻易重新创建的状态信息,最好不要将其保留在您的视图中。
因此,这取决于您的大部分功能正在做什么:如果它维护用户创建的信息,则需要在视图控制器中。
答案 2 :(得分:1)
StackOverflow上已经有几个问题涉及模型 - 视图 - 控制器。例如,请参阅What goes into the "Controller" in "MVC"?。
在您的特定场景中,首选项本身是一种跟踪用户偏好的模型。保存和加载这些偏好是控制器的职责。显示这些首选项并为用户提供更改它们的方法是视图的职责。最后,当用户更改这些首选项时,视图会将此信息报告给控制器,从而对模型进行适当的更改。