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的内部关系。
content view controller独自管理着其下所有的views。container view controller管理着它自己的views以及其子view controller的root view。container view controller不负责管理其子view controller的内容。下图是一个container view controller与其下子view controller间的关系:
数据管理
view controller扮演者view和数据间的中介。UIViewController类的属性和方法使得你能够管理app的视觉展示。当子类化view controller时,你可以添加任何你所需要的变量。下图展示了它们之间的关系:
你必须将view controller和数据对象间的职责清晰的分开。
用户交互
view controller属于responder对象,能够处理传递下来的事件。尽管如此,view controller极少直接处理touch events。通常由views来处理自己的touch事件,并将结果报告给代理的一个方法或target对象(通常是这个view controller)。所以大多数事件都是由代理方法或actions方法来处理的。
资源管理
主要是内存资源
适配
自动调整尺寸
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。