博看文思iOS开发教程:践行MVC架构

这里所说的“视图”,指代的是每个界面中最大的父视图容器,也就是多视图应用中所指代的“视图”。MVC框架中,视图(View)只负责输入与输出,也就是与用户做交互。所有的业务逻辑都需要放在视图所对应的视图控制器(Controller)中进行。

博看文思iOS开发教程:践行MVC架构

1、每个“视图”都应有个控制器

这里所说的“视图”,指代的是每个界面中最大的父视图容器,也就是多视图应用中所指代的“视图”

博看文思iOS开发教程:践行MVC架构

博看文思iOS开发教程:践行MVC架构

MVC框架中,视图(View)只负责输入与输出,也就是与用户做交互。所有的业务逻辑都需要放在视图所对应的视图控制器(Controller)中进行。

我们之前的所写的应用程序,完全可以看作一个单视图应用程序。mainView就是我们的唯一“视图”,AppDelegate充当了mainView的视图控制器。AppDelegate中管理“视图”的子视图,布局子视图,设置子视图的内容;并且当用户点击按钮时,做出相应的动作。

像之前这样组织我们的代码本无可厚非,但是,我们却从不让AppDelegate充当任何视图的视图控制器。从名字上就可以看出,AppDelegate是整个应用程序的委托,它的关注点在于整个应用程序。并且,当遇到多视图的时候,如果所有“视图”都让同一个对象当各自的视图控制器的话,该视图控制器就会过于臃肿,各种问题也会随之而来:代码会高度耦合,视图的重用变得异常困难,维护成本成几何倍数增长等等。

每当我们为应用创建一套界面时,我们并不会直接实例化UIView。取而代之的是,子类化一个UIViewController,并将其实例化。下面是具体的实现过程。

创建一个Empty Application,起名为HelloWorld,然后单击AppDelegate.m文件,为新建文件选择一个插入点:

图 2.4_01 定位文件插入位置

然后执行下图的操作(或者按组合键 n):

博看文思iOS开发教程:践行MVC架构相关文档

最新文档

返回顶部