首页 > 代码库 > 视图控制器的生命周期(精简)
视图控制器的生命周期(精简)
一、视图控制器的生命周期
只要是对象,就有其生命周期。创建视图控制器无非就两种,一种是纯代码创建,一种是通过加载storyboard、xib文件中加载创建。
1. 纯代码创建的生命周期
- initWithNibName
- loadView
- viewDidLoad
- viewWillAppear
- viewWillLayoutSubviews
- viewDidLayoutSubviews
- viewDidAppear
- viewWillDisappear
- viewDidDisappear
- dealloc
第一步:initWithNibName分配内存,创建并初始化对象
第二步:loadView到内存里去调用加载视图,调用这个方法之前,会调用view的getter方法,如果没有获取到view,再调用此方法进行加载
第三步:viewDidLoad表示已加载完视图,此时可以配置视图的其他信息
第三步:viewWillApear表示视图信息都加载完,即将显示出来
第四步:viewWillLayoutSubviews将要对视图的子视图进行布局
第五步:viewDidLayoutSubviews子视图布局完毕,其中第四,第五步会多次调用2次,第一次是系统默认,第二次是调用我们设置的约束
第六步:viewDidAppear视图显示在屏幕上
第七步:viewWillDisappear视图即将从屏幕消失
第八步:viewDidDisappear视图从屏幕上消失
第九步:dealloc销毁视图,回收内存
2. storyboard、xib文件中加载创建
- initWithCoder
- awakeFromNib
- loadView
- viewDidLoad
- viewWillAppear
- viewWillLayoutSubviews
- viewDidLayoutSubviews
- viewDidAppear
- viewWillDisappear
- viewDidDisappear
- dealloc
相比纯代码创建的不同之处在于前面几步:
第一步:initWithCoder把storyboard、xib对象的实例变量和其他数据编码为数据块载入内存
第二步:在载入内存的同时,会发送一个awakeFromNib的消息到.nib文件中的每个对象,每个对象都可以定义自己的awakeFromNib函数来响应这个消息,执行一些必要的操作
视图控制器的生命周期(精简)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。