UIViewController可以分为两类:
1.Content(内容)—(UIViewController)管理自身viewConroller的视图内容
A content view controller manages all of its views by itself
2.Container(容器)—(UINavigationController
and UITabbarViewController)管理自身viewController的视图内容,以及viewControllers和viewControllers的RootView ,不管理viewControllers的内容
A container view controller managesits own views plus the root views from one or more of its child view controllers.The container does not manage the content of its children. It manages only theroot view, sizing and placing it according to the container’s design
A.content例子
ViewController强引用rootViewrootView强引用subviews
普遍的做法是:使用outlets使用其他的views,controller会储存这些views的引用,在你加载storyboard的时候会关联到实际的view
outlets(待填坑)Outlet
B.container例子
容器controller管理者她的尺寸和子视图的位置,不管理内容
他的子controllers管理者他们视图实际的内容
ManagingViewLayout(待填坑)Managing View Layout
The split view controller manages the overallsize and position of its child views, but the child view controllers manage theactual contents of those views.
职责
a.数据调度
viewController是data(数据)和views(视图)的中间者,它起中间人作用(媒人),主要是负责提供data给view和将view内容传回给data
the view controller has references to your data and to the views used topresent that data. Moving data back and forth between the two is yourresponsibility
应该dataobjects处理自身逻辑应该最大化的确保数据结构的完整性,viewcontroller验证views传过来的信息是dataobjects需要的格式,但是必须最小化viewController管理实际的数据。
使用UIDocument对象是一个方法来管理数据是他与你的viewController分离。
UIDocument(待填坑)UIDocument
b.用户交互
(用户响应链responder objects)处理用户事件
responder objects(待填坑)Responder object
viewController很少直接处理用户事件,一般都是views处理自己的事件,然后将他们处理的结果关联到delegate或者target action(一般是viewController)
delegate(待填坑)Delegation
action methods(待填坑)Target-Action
HandlingUser Interactions(待填坑)Handling User Interactions
EventHandling Guide for iOS(待填坑)About Events in iOS
c.资源管理
viewController会管理它的views和objects的内存。当内存吃紧的时候会释放没用的内存。
d.自适应性
viewcontroller自适应views的展示,以来适配不同的iphone机型或者iPad,而不是针对不同的设备提供不同的view.
自动布局适应不同的机型Auto Layout(待填坑)The Adaptive Model
附苹果官方链接地址:
网友评论