UIViewController简介
ViewController是iOS应用程序中重要的部分,是应用程序数据和视图之间的重要桥梁,ViewController管理应用中的众多视图。
分成两类
- 展示类,UITableViewController,UIViewController
- 容器类,UINavigationController,UITabbarControlle
生命周期
重点掌握
- 与生命周期有关的方法及作用
- 生命周期都有哪些情况及每一种情况会调用哪些方法
与生命周期有关的方法及作用,共14个
//类的初始化方法,只在这个类第一次创建对象的时候调用做一些类的准备工作
+ (void)initialize;
//对象初始化方法,从代码进行初始化会调用
- (instancetype)init;
//从归档初始化,如果从归档文件进行初始化,就会调用initWihCoder方法
- (instancetype)initWithCoder:(NSCoder *)coder;
//在从xib或storyboard中加载的UIViewController将要被激活时被调用
-(void)awakeFromNib;
//加载视图,loadView方法是开始加载UI视图的初始方法,这个方法除非开发者手动调用,否则在UIViewController的生命周期中只会被调用一次。
-(void)loadView;
//法在视图已经加载完成后会被调用,因为这个函数被调用的时候,视图控制器的基本系统功能已经初始化完成,
//开发者一般会将一些Controller额外定义功能的初始化工作放在这个函数中。比如可以移除一些视图,修改约束,加载数据等。
- (void)viewDidLoad;
//将要展示,在视图即将显示的时候调用,我们可以在这个方法里,改变当前屏幕方向或状态栏的风格等。
-(void)viewWillAppear:(BOOL)animated;
//将要布局子视图
-(void)viewWillLayoutSubviews;
//已经布局子视图
-(void)viewDidLayoutSubviews;
//已经展示视图,我们可以在这个方法中,对视图做一些关于展示效果方面的修改。
-(void)viewDidAppear:(BOOL)animated;
//将要消失,在视图将要消失时调用,开发者可以在其中做一些数据清理的操作。
-(void)viewWillDisappear:(BOOL)animated;
//已经消失
-(void)viewDidDisappear:(BOOL)animated;
//被释放,在对象被释放时调用,开发者可以通过在其中打印信息的方式检查一个类是否存在内存泄漏等问题。
-(void)dealloc;
/*
内存警告,当系统发出内存警告的时候,会自动把 view 给清除掉,不用我们再特别处理。
同时系统还会调用 didReceiveMemoryWarning 方法通知视图控制器,我们可以在这里面进行一些操作,
来释放一些额外的资源。(通常来说不用操作,比较最占资源的 view 已经被系统给清理了。)
*/
- (void)didReceiveMemoryWarning;
2.生命周期都有哪些情况
1)创建
- initialize,类的初始化
- init/initWithCoder,对象初始化
- loadView,viewDidLoad,视图加载
- viewWillAppear/viewWillLayoutSubviews/viewDidAppear/viewDidAppear,视图展示
2)切换,换视图或按home键
- viewWillAppear/viewWillLayoutSubviews/viewDidAppear/viewDidAppea,视图展示
- viewWillDisappear/viewDidDisappear,视图隐藏
3)销毁
- viewWillDisappear/viewDidDisappear,视图隐藏
- dealloc,对象销毁
参考
iOS对UIViewController生命周期和属性方法的解析