View和View Controller有什么区别?

问题描述:

从iphone开发视角View和View Controller有什么区别?

A view是一个画到屏幕上的对象。它也可能包含其他视图(子视图),并将其与其一起移动。视图可以获得触摸事件并改变其视觉状态作为回应。视图是愚蠢的,不知道你的应用程序的结构,只是被告知在某种状态下显示自己。

A 视图控制器不能直接绘制到屏幕上,它管理一组视图对象。视图控制器通常有一个view与许多子视图。视图控制器管理这些视图的状态。视图控制器很聪明,并且知道你的应用程序的内部工作。它告诉愚蠢的观看对象该做什么以及如何展示自己。

视图控制器是整个应用程序和屏幕之间的粘合剂。它控制根据您的应用程序的逻辑它拥有的意见。

+0

你的聪明/愚蠢的比较使我的理解有所不同。谢谢。 – RandomPleb 2014-08-11 04:12:11

+1

如果你想要一个包含诸如表格之类复杂东西的大型视图层次结构,你最终不得不在iOS开发中的任何地方使用UIViewControllers,对吧?无论如何,视图控制器都与他们的视图紧密结合。在我看来,他们应该是一样的,以使事情变得同质化。 – sudo 2017-09-29 00:18:57

控制器将视图(UI元素)连接到模型对象。视图用于显示,模型对象用于数据,控制器是它们之间的粘合剂。

查看Cocoa Fundamentals Guide了解模型 - 视图 - 控制器模式的三层体系结构的解释。

有一种称为MVC或Model-View-Controller的模式。视图和控制器就在那里。您可以在Apple文档或这里阅读它(例如,这是一个广泛使用的模式):http://en.wikipedia.org/wiki/Model-View-Controller

我刚开始使用我的第一个应用程序。非常简单地说,视图是应用程序的视觉方面

和视图控制器是实际控制或操纵视觉方面的代码。