视图控制器中应该包含什么以及视图中应包含哪些内容?

时间:2014-02-18 14:24:44

标签: ios cocoa-touch model-view-controller

我正处于开发iOS应用程序的开始阶段我无法理解MVC(模型 - 视图 - 控制器)设计模式。我以为我把它弄下来但是我读的越多,我就越困惑。我不知道这应该是iOS特定的问题,还是每次使用MVC都是如此。我没有使用故事板btw,我想以编程方式完成所有操作。

我相信我理解控制器和模型之间的基本关系,它是我无法获得的视图和控制器的分离。假设我要创建一个UIButton并在屏幕上显示它。我应该在Controller或View中启动按钮吗?控制器负责应该显示什么,对吗?您是不是只需要调用View来显示它而不用担心在Controller中创建按钮?根据我的理解,视图控制器只是控制器,因此控制视图,而不是 视图。看起来大多数人都只关注View Controllers中的所有内容。我想我的问题归结为代码在哪里?

3 个答案:

答案 0 :(得分:1)

UIViewController是MVC模式中的控制器部分。

  • M(型号)
  • C(ontroller)
  • V(视图)

控制器处理不同视图之间的导航等。

从这里你可以得到更多的想法:view and viewcontroller

视图是绘制到屏幕的对象。它还可能包含其中的其他视图(子视图)并随之移动。视图可以获得触摸事件并更改其视觉状态作为响应。视图是愚蠢的,不知道你的应用程序的结构,只是被告知在某种状态下显示自己。

视图控制器不能直接绘制到屏幕上,它管理一组视图对象。视图控制器通常具有包含许多子视图的单个视图。视图控制器管理这些视图的状态。视图控制器很智能,并且了解应用程序的内部工作原理。它告诉哑巴视图对象要做什么以及如何展示自己。 视图控制器是整个应用程序和屏幕之间的粘合剂。它根据应用程序的逻辑控制它拥有的视图

关于视图控制器 视图控制器是应用程序数据与其视觉外观之间的重要链接。每当iOS应用程序显示用户界面时,显示的内容由视图控制器或一组视图控制器相互协调来管理。因此,视图控制器提供构建应用程序的骨架框架。 iOS提供了许多内置的视图控制器类来支持标准用户界面部分,例如导航和标签栏。作为开发应用程序的一部分,您还可以实现一个或多个自定义控制器,以显示特定于您的应用程序的内容。

答案 1 :(得分:0)

不确定任何iOS细节,但是从PHP观点控制器那里获取视图所需的任何数据(通过模型),然后将该数据传递给视图。

该视图仅用于将内容渲染到屏幕上,并且其中没有逻辑。

因此,从网站的角度来看,如果您想在屏幕上显示用户名:

控制器将从模型中请求用户名 该模型将获取用户名并将其返回给控制器 然后控制器将用户名传递给视图 然后视图将呈现用户名。

希望有所帮助。

答案 2 :(得分:0)

不具体,但在上层,您可以说如下:

您可以将控制器代码放在扩展UIViewControllers

的类中

您可以将视图代码放在扩展UIView

的类中

您可以将模型代码放在扩展NSObject

的类中