View Controller是App内部结构的基础。每个App至少含有一个View Controller,大多数会含有多个。每个View Controller管理着App用户界面的一部分,包括这些界面间的交互以及潜在的数据。View Controller也管理不同用户界面间的过渡。

由于在App中扮演的重要作用,View Controller的角色处于中心位置。UIViewController类定义了管理views的方法、属性、事件处理、view controller间的过渡以及如何与App其他部分的交互方法。通常你要子类化UIViewController,添加一些自定义代码来实现你的功能。

存在两种View Controller:

  • Content view controller管理着app的一个单独的内容,是创建view controller的主要类型

  • Container view controller包含若干其他view controller的信息(child view controller),根据不同的需求呈现这些view controllers。

视图管理

View Controller最重要的角色就是管理views的继承树。每个view controller只含有一个root view,它包含了view controller的所有内容。对于root view,你可以向它添加你所需要的view来展现你的内容。如下图,展示了view controller和view的内部关系。
VCPG_ControllerHierarchy_fig_1-1_2x.png

content view controller独自管理着其下所有的views。container view controller管理着它自己的views以及其子view controller的root view。container view controller不负责管理其子view controller的内容。下图是一个container view controller与其下子view controller间的关系:
VCPG_ContainerViewController_fig_1-2_2x.png

数据管理

view controller扮演者view和数据间的中介。UIViewController类的属性和方法使得你能够管理app的视觉展示。当子类化view controller时,你可以添加任何你所需要的变量。下图展示了它们之间的关系:
VCPG_CustomSubclasses_fig_1-3_2x.png

你必须将view controller和数据对象间的职责清晰的分开。

用户交互

view controller属于responder对象,能够处理传递下来的事件。尽管如此,view controller极少直接处理touch events。通常由views来处理自己的touch事件,并将结果报告给代理的一个方法或target对象(通常是这个view controller)。所以大多数事件都是由代理方法或actions方法来处理的。

资源管理

主要是内存资源

适配

自动调整尺寸


Dr_Noooo
50 声望5 粉丝

« 上一篇
Tips For Views