2014-02-18 39 views
3

我在开发iOS应用程序的开始阶段我无法理解MVC(模型 - 视图 - 控制器)设计模式。我以为我把它放下了,但我读得越多,我越感到困惑。我不知道这应该是一个iOS的具体问题,或者每次使用MVC都是如此。我没有使用故事板顺便说一句,我想以编程方式做到这一切。视图控制器应该在视图中应该是什么?

我相信我理解控制器和模型之间的基本关系,它是分离的视图和控制器,我没有得到。假设我想创建一个UIButton并将其显示在屏幕上。我应该启动控制器还是视图中的按钮?控制器负责显示什么,正确的?你不是只需要调用一个视图来显示它,而不用担心在控制器中创建按钮?据我所知,视图控制器只是控制器,因此应该是控制的视图,而不是的视图。看起来大多数人都是在视图控制器中做所有事情。我想我的问题归结为什么代码去哪里?

+0

苹果有一个文档:https://developer.apple.com/library/ios/documentation/general/conceptual/devpedia-cocoacore/MVC.html –

+0

我有2个指导建议给你:[Model-View -Controller](https://developer.apple.com/library/ios/documentation/General/Conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html#//apple_ref/doc/uid/TP40010810- CH14)和[适用于iOS的View Controller编程指南](https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html) – Desdenova

+0

注意:“视图控制器”不是MVC模式的一部分。这是该框架特有的东西。 –

回答

1

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

  • M(模型)
  • C(ontroller)
  • V(查看)

控制器处理不同意见之间的导航等

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

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

视图控制器不能直接绘制到屏幕上,它管理一组视图对象。视图控制器通常具有包含许多子视图的单个视图。视图控制器管理这些视图的状态。视图控制器很聪明,并且知道你的应用程序的内部工作。它告诉愚蠢的观看对象该做什么以及如何展示自己。 视图控制器是整个应用程序和屏幕之间的粘合剂。它控制,它根据 视图控制器是一个应用程序的数据和其外观之间的重要联系您的应用程序

关于视图控制器的逻辑拥有的意见。每当iOS应用程序显示用户界面时,显示的内容都由一个视图控制器或一组彼此协调的视图控制器进行管理。因此,视图控制器提供了构建应用程序的骨架框架。 iOS提供了许多内置的视图控制器类来支持标准的用户界面部分,例如导航栏和标签栏。作为开发应用程序的一部分,您还可以实现一个或多个自定义控制器来显示特定于您的应用程序的内容。

0

不确定任何iOS细节,但从PHP的角度来看,控制器可以获取视图所需的任何数据(通过模型),然后将该数据传递给视图。

该视图仅将屏幕渲染到屏幕上,并且应该没有逻辑。

从一个网站点,如果你想在屏幕上显示一个用户名

所以:

控制器会从模型要求的用户名 该模型将得到的用户名,并返回到控制器 然后控制器会将用户名传递给视图 然后视图会呈现用户名。

希望有所帮助。

+0

谢谢!帮了一下。 – rooskist

0

为了不具体,但上层,你可以说如下:

你可以把控制器代码类扩展UIViewControllers

你可以把视图代码类扩展UIView

您可以将模型代码放入课程中延伸NSObject

相关问题