小言_互联网的博客

ViewController的生命周期

208人阅读  评论(0)

ViewController的生命周期

1.init

init函数并不会每次创建对象都调用,只有在这个类第一次创建对象时才会调用,做一些类的准备工作,再次创建这个类的对象,initalize方法将不会被调用,对于这个类的子类,如果实现了initialize方法,在这个子类第一次创建对象时会调用自己的initalize方法,之后不会调用,如果没有实现,那么它的父类将替它再次调用一下自己的initialize方法,以后创建也都不会再调用。因此,如果我们有一些和这个相关的全局变量,可以在这里进行初始化。

2. loadView

loadView方法是开始加载视图的起始方法,除非手动调用,否则在ViewController的生命周期中没特殊情况只会被调用一次。

3. viewDidLoad

viewDidLoad方法是我们最常用的方法的,类中成员对象和变量的初始化我们都会放在这个方法中,在类创建后,无论视图的展现或消失,这个方法也是只会在将要布局时调用一次。

4. viewWillAppear

视图将要展现时会调用。

5. viewWillLayoutSubviews

在viewWillAppear后调用,将要对子视图进行布局。

6. viewDidLayoutSubviews

已经布局完成子视图。

7. viewDidAppar

视图完成显示时调用。

8. viewWillDisappear

视图将要消失时调用。

9. viewDidDisappear

视图已经消失时调用。

10. dealloc

controller被释放时调用。

viewDidUnload方法

 当系统内存吃紧的时候会调用该方法,内存吃紧时,在iPhone OS 3.0之前didReceiveMemoryWarning是释放无用内存的唯一方式,但是OS 3.0及以后viewDidUnload方法是更好的方式。

  在该方法中将所有IBOutlet(无论是property还是实例变量)置为nil(系统release view时已经将其release掉了)。

  在该方法中释放其他与view有关的对象、其他在运行时创建(但非系统必须)的对象、在viewDidLoad中被创建的对象、缓存数据等。

  一般认为viewDidUnload是viewDidLoad的镜像,因为当view被重新请求时,viewDidLoad还会重新被执行。

这个是每一个生命周期的打印结果

最后可以看一下这和流程图

ViewController的生命周期


转载:https://blog.csdn.net/weixin_44824650/article/details/101476452
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场