iphone - 使用 MVC 时是否需要创建单独的 View 类?

标签 iphone objective-c model-view-controller

看完斯坦福 iTunesU CS193p 在线类(class)后,我有一个关于实现 MVC 设计的正确方法的快速问题。

通常当我做一个应用程序时,我将我的 View 设置为 Controller 的一部分,并向其中添加 UIButtons、UILabels 等。本质上, Controller 和 View 成为一体,除非您将 UIObject 算作 View 对象

在早期的 CS193p 示例之一中,导师将 View 从 Controller 分离为一个单独的对象(UIView 的子类),然后在 View 上实现协议(protocol)和委托(delegate)属性, Controller 对象随后将遵循该 View 。

我只是对 CS193p 设计的实用性感到好奇,我可以理解 Split View更好地代表了 MVC 设计范式(尤其是作为教学辅助工具),但对其在实际应用中的应用持怀疑态度。

最佳答案

将“ View ”视为 UIButton 和 UIImageView 等对象;不一定对应用程序的其余部分一无所知的可重用组件。您的 View Controller 是负责配置 View 对象和管理其状态的对象。

有时您会想要子类化 UIView,主要是当您需要在 drawRect: 中进行自定义绘图时。不过,您不会将 UIView 子类化来自定义行为,这就是您的 View Controller 的用途。例如,您不会将 UITableView 子类化,而只是让 TableView 成为它自己的委托(delegate)。相反,你会让你的 View Controller 成为 TableView 的委托(delegate)。

关于iphone - 使用 MVC 时是否需要创建单独的 View 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8392129/

相关文章:

javascript - 主干 subview 调用父级渲染

ios - cellForRowAtIndexPath 的回调?

ios - Swift - 无法使用performSegueWithIdentifier

ios - 从单元格到托管对象的 keyValue 观察者

iphone - 多个 requestWithGraphPath Facebook iOS

asp.net-mvc - MVC 3 保持短网址

iphone - iOS Objective-C : Using URLConnection multiple times

iphone - 如何完全用代码创建和管理 UIWebView 对象?

iOS - 将特定图像从包资源路径复制到文档目录

cocoa - AppDelegate 或 AppController