iOS

iOS控制器View加载顺序详细版

2017-10-27  本文已影响556人  七里田间的守望者

控制器声明周期

//通过nib问价初始化触发
- (instancetype)initWithCoder:(NSCoder *)aDecoder

//nib文件被加载的时候,会发送一个消息到nib文件中的每一个对象
- (void)awakeFromNib

//开始加载视图控制器自带的view
- (void)loadView

//视图控制器的view被加载完成
- (void)viewDidLoad

//视图控制器的view将要显示在window上
- (void)viewWillAppear:(BOOL)animated

//视图控制器的view开始更新Autolayout
- (void)updateViewConstraints

//视图控制器的view开始更新内容视图的位置
- (void)viewWillLayoutSubviews

//视图控制器的view已经更新内容视图的位置
- (void)viewDidLayoutSubviews

//视图控制器的view已经显示到window上
- (void)viewDidAppear:(BOOL)animated

//视图控制的view将要从window上消失
- (void)viewWillDisappear:(BOOL)animated

//视图控制器的view已经从window上消失
- (void)viewDidDisappear:(BOOL)animated

加载过程:
1 一般情况下调用 init方法或者调用initWithNibName方法实例化UIViewController, 不管调用哪个方法都为调用initWithNibName(方法定义如下)

- (void)awakeFromNib;

- (void)viewWillDisappear:(BOOL)animated;
- (void)viewDidDisappear:(BOOL)animated;
- (void)viewWillUnload;//iOS5.0添加- (void)viewDidUnload;
- (void)dealloc;

viewDidLoad 当view对象被加载到内存是就会执行viewDidLoad,所以不管通过nib文件还是代码的方式创建对象都会执行viewDidLoad

上一篇下一篇

猜你喜欢

热点阅读