我不明白:在所有关于iOS的教程中,它展示了一个经典的三部分模型,视图,控制器,那么为什么XCode在控制器前面加上xxxViewController而不是xxxController呢?
这使得人们相信控制器只是用于视图,而不是用于模型,并且比经典的MVC更接近MVVM。
在给出的答案中,它说它不是MVC。
但是如果我看一下斯坦福大学的课程,它清楚地将iOS开发描述为Lecture1.pdf @ http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-fall中的经典MVC

发布于 2012-01-28 21:15:20
Xcode并不是对所有的控制器都这样做,只对视图控制器(它们是UIViewController的子类)。它使得查找管理视图的控制器变得更容易,您可以创建其他控制器,并随心所欲地命名它们。
发布于 2012-01-28 21:19:00
作为this Apple discussion thread中的g_wolfman注释
尽管苹果在其开发人员文档中使用了术语
,但他们实际上并没有使用它;他们使用的是表示-抽象-控制(PAC)|http://en.wikipedia.org/wiki/Presentation-abstraction-control.的一个变体
关键的区别在于,在MVC中,视图直接从模型中获取信息,而控制器只关心更改模型。因此,作为创建视图的一部分,视图可能需要知道如何转换模型中的数据。在PAC中,视图和模型是完全相互隔离的;所有内容都通过控制器。这允许以避免需要任何“业务逻辑”的方式编写视图。
编辑-来自苹果文档- http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html#//apple_ref/doc/uid/TP40002974-CH6-SW1
组合角色
可以合并由对象扮演的MVC角色,例如,使对象同时满足控制器和视图角色-在这种情况下,它将被称为视图控制器。同样,您也可以拥有模型控制器对象。对于某些应用程序,像这样组合角色是一种可接受的设计。
https://stackoverflow.com/questions/9045489
复制相似问题