一、ViewController的生命周期
1.ViewController 第一步是初始化。具体调用的方法根据实际情况有所不同。使用 StoryBoard ,我们不需要显式地去初始化,Storyboard 会自动使用 initWithCoder: 进行初始化。使用纯代码或xib,可以使用 init: 函数进行初始化,init: 函数在实现过程中还会调用 initWithNibName:bundle:。 步骤:
1.首先判断控制器是否有视图,如果没有就调用loadView方法创建:通过storyboard或者代码;
2.调用viewDidLoad,可以进行下一步的初始化操作;
3.视图显示之前调用viewWillAppear,该函数可以使用多次
4.视图将去除viewWillDisappear;
5.布局变化前后,调用viewWill/DidLayoutSubviews;
二、初始化后执行的方法
1.initWithCoder:当控件是从xib、storyboard中创建时,就会调用这个方法
2.awakeFromNib:在initWithCoder:方法后调用 ,顺序是:initWithCoder -> awakeFromNib
3. (void)loadView:当没有正在使用xib视图页面,子类将会创建自己自定义视图层,不允许直接调用,子类可重写
4.(void)viewDidLoad:视图加载后被调用,如果是在代码中创建的视图加载器,将会loadView方法后被调用,如果是nib视图页面输出,将会在视图设置好后被调用
5.(void)viewWillAppear :视图即将可见时调用
6.(void)viewWillLayoutSubviews:控制器将要布局View的子控件时调用,每当视图的bounds改变时,view将调整其子控件的位置
7.(void)viewDidLayoutSubviews:会在控制器已经布局子控件的时候调用
8.(void)viewDidAppear:视图已经完全过度到屏幕上时调用
9.(void)viewWillDisappear:视图将去除,被覆盖或异常于视图时的通知会呼叫的方法
10.(void)viewDidDisappear:视图被驳回时调用,覆盖或者以其他方式隐藏
网友评论