【发布时间】:2014-08-04 17:44:30
【问题描述】:
我了解模型-视图-控制器设计模式:模型、视图和控制器三个对象,其中视图完成所有绘图、接收用户交互并向控制器报告。但是,在 iOS 中,你有 UIViewController,它是一个控制器,视图作为一个对象,所有的绘图和处理都在同一个对象中完成,这不违反 MVC 模式吗?您不应该创建一个单独的 UIView 对象并将其链接到一个单独的控制器对象吗?
如果有人能帮我解决这个问题,那就太好了。谢谢!
【问题讨论】:
-
我不完全确定你的意思,但是视图控制器的
.view可以有子视图(所以它不必自己做所有的绘图)。注意 Apple 的 MVC 模式与标准 MVC 有点不同。 -
并注意有一个单独的视图和控制器:
UIViewController有一个属性view保存视图对象。 -
感谢您的快速解答!
UIViewController有自己的view,但可以说,您必须在该视图上绘制一个按钮,这不会发生在UIViewController对象本身中吗?而如果你有一个单独的UIView对象,控制器可以调用[separateView showButton]并让separateView进行绘图?除非您打算创建一个新的UIView对象并告诉UIViewController的view将该单独的视图添加为子视图,否则它应该是这样吗? -
是的,您应该执行
[self.view addSubview:[[MyButtonView alloc] initWithTarget:self andSelector:@selector(...)]];之类的操作。如果这就是你的意思,我会写一个正确的答案。 -
我想这就是我要找的,请你写一个正确的答案。