一 概述
1.作用:
•创建和管理视图。
•管理视图上显示的数据。
•设备方向变化,调整视图大小以适应屏幕。
•负责视图和模型之间的数据及请示的传递。
3. 主要属性
• view:控制器管理的根视图
• title: 控制器导航栏的标题
• wantsFullScreenLayout: 是否需要全屏显示
• interfaceOrientation: 界面方向
• navigationItem:导航子项
• editing: 是否处理编辑状态
• hidesBottomBarWhenPushed: 入栈时隐藏底部栏
• toolbarItems: 工具栏子项集
• tabBarItem: 标签栏子项
• editButtonItem:返回一个编辑按钮
• parentViewController :交视图控制器
• searchDisplayController :搜索显示控制器
• splitViewController :分割视图控制器
• modalViewController :模式控制器
• navigationController :导航控制器
• tabBarController :标签控制器
4. 主要方法
• – loadView:不要主动调用该方法,当访问控制器view的时候,就会调用该方法。如果要自己创建view,则需要重写该方法。
• – viewDidLoad:当加载控制器的视图到内存时,该方法被调用。
• – viewWillAppear:
• – viewDidAppear:
• – viewWillDisappear:
• – viewDidDisappear:
• – shouldAutorotateToInterfaceOrientation:是否支持指定的界面方向。
• –willAnimateRotationToInterfaceOrientation: duration:将要使用动画过渡到某个界面方向。
• – didReceiveMemoryWarning:接收到内存警告信息。
• – presentModalViewController:animated:显示模式控制器
• – dismissModalViewControllerAnimated:隐藏模式控制器
• – setToolbarItems:animated:设置工具栏子项
• – setEditing:animated:设置编辑状态
二 知识点详解
1. 视图控制器的生命周期
当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序
1> init | 初始化对象, 分配空间(在init中应该只有关键数据的初始化. init中年不要调用self.View 否则会导致viewController创建View(因而View是lazyinit的)) |
2> loadView | 载入视图, 这一步通常不需要去干涉(只初始化View, 一般用于创建比较关键的View, 列入tableViewCOntroller的tableView, UINavigationController的navigationBar, 不可以调用view的getter(在调用[super loadView]之前,最好也不要初始化一些非关键的View)) |
3> viewDidLoad | 这个时候View已经有了,可以进行自定义数据的添加了. 有一点需要注意的是, viewDidLoad会调用多次(viewcontroller可能多次载入View) |
4> viewWillAppear |
视图即将出现在屏幕上时,调用该方法
一般用于显示后,在切换动画后,如果有需要的操作,可以在这里加入相关代码。
|
5> viewDidAppear | 视图出现在屏幕上后,调用该方法 |
6> viewWillDisAppear | 视图即将从屏幕上移除时,调用该方法 |
7> viewDidDisAppear | 视图已经从屏幕上移除时调用该方法 |
8> dealloc | 视图被销毁时调用该方法 |
注解: 创建控制对象视图的方法是 UIViewController懒加载方法
- (UIViewController *)view{
[self loadView];
[self viewDidLoad];
[self loadView];
[self viewDidLoad];
}