前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【iOS】UIViewController生命周期

【iOS】UIViewController生命周期

作者头像
全栈程序员站长
发布2022-07-06 14:24:11
7870
发布2022-07-06 14:24:11
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是全栈君。

UIViewController有2周期:

在UIViewController中,View存在两个循环:载入循环卸载循环

载入循环 1》程序请求controller的view。

2》假设view在内存中,则直接载入。相反,假设不存在。则UIViewController调用loadView方法。

3》loadView方法运行例如以下操作:

假设你重载了这种方法,则必须创建必要的view而且将一个非nil值传给UIViewController的view属性。

假设你没有重载这个函数,UIViewController会默认使用UIViewController的nibName和nibBundle属性尝试从nib文件载入view。假设没有找到nib文件,它尝试寻找一个与UIViewController类名匹配的nib文件。

假设没有可用的nib文件,那么它创建一个空的UIView作为它的view。

4》UIViewController调用viewDidLoad来运行一些载入时任务。

卸载循环 1》 程序收到内存警告。

2》每一个UIViewController调用didReceiveMemoryWarning。默认会安全地释放掉view。

3》假设UIViewController释放掉了它的view,它会调用viewDidUnload。 能够重载这种方法来进行额外的清理工作

UIViewController的生命周期:

当一个视图控制器被创建。并在屏幕上显示的时候。 代码的运行顺序

1、 alloc 创建对象,分配空间 2、init (initWithNibName) 初始化对象,初始化数据 3、loadView 从nib加载视图 ,通常这一步不须要去干涉。除非你没有使用xib文件创建视图 4、viewDidLoad 加载完毕,能够进行自己定义数据以及动态创建其它控件 5、viewWillAppear 视图将出如今屏幕之前,立即这个视图就会被展如今屏幕上了 6、viewDidAppear 视图已在屏幕上渲染完毕

当一个视图被移除屏幕而且销毁的时候的运行顺序,这个顺序差点儿相同和上面的相反。 1、viewWillDisappear 视图将被从屏幕上移除之前运行 2、viewDidDisappear 视图已经被从屏幕上移除,用户看不到这个视图了 3、dealloc 视图被销毁,此处须要对你在init和viewDidLoad中创建的对象进行释放

关于viewDidUnload :在发生内存警告的时候假设本视图不是当前屏幕上正在显示的视图的话。 viewDidUnload将会被运行,本视图的全部子视图将被销毁,以释放内存,此时开发人员须要手动对viewLoad、viewDidLoad中创建的对象释放内存。 由于当这个视图再次显示在屏幕上的时候,viewLoad、viewDidLoad 再次被调用,以便再次构造视图。

參考:http://blog.csdn.net/huifeidexin_1/article/details/7566226

http://blog.csdn.net/teamlet/article/details/8579129

xn4545945收集整理:http://blog.csdn.net/xn4545945

版权声明:本文博主原创文章,博客,未经同意不得转载。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116996.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • UIViewController的生命周期:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档