【iOS】UIViewController生命周期

【iOS】UIViewController生命周期

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

UIViewController有2周期:

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

【iOS】UIViewController生命周期

载入循环
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.net/116996.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Java案例:实现九九乘法表「建议收藏」

    Java案例:实现九九乘法表「建议收藏」Java案例:实现九九乘法表前言本篇文章主要讲述并实现Java实现九九乘法表。一、九九乘法表?九九乘法表就是咱们小学时期最开始接触乘法运算时,数字10以内,以及结果100以内的乘法口诀。二、解题思路因为涉及到行与列,而且均有1~9这样的循环出现,因此首先想到的就是for循环,而且要出现两个其次,因为九九乘法表每一行的等式左边的因数为等式的列,右边的因数为等式的行,同一行,右边的因数不变,所以for循环有嵌套关系又因为左边的因数永远小于等于右边的因数,所以嵌套的for循环条件一定为

    2022年7月15日
  • 如何创建属于自己的博客!「建议收藏」

    如何创建属于自己的博客!「建议收藏」如何创建属于自己的博客!首先,我们需要一些创建博客必须的工具,如下:1. 云虚拟主机+数据库。如果把创建网站比作盖房子的话,主机与数据库就相当于地基,是整个网站的基本,地基稳固,我们的房子

    2022年8月1日
  • Intel x86 Emulator Accelerator(HAXM installer)无法安装「建议收藏」

    Intel x86 Emulator Accelerator(HAXM installer)无法安装「建议收藏」在sdkmanager中Intelx86EmulatorAccelerator(HAXMinstaller)后面显示NOTcompatiblewithwindows这个时候可以尝试手动安装Intelx86EmulatorAccelerator(HAXMinstaller)1、在网上下载后,https://software.intel.com/en-us/artic…

    2022年6月28日
  • 什么是平均数,中位数,众数,方差_平均数标准差

    什么是平均数,中位数,众数,方差_平均数标准差Python代码实现第一步:添加数据到列表defnum(a):iffloat(a)==int(a):returnint(a)else:returnfloat(a)#添加数据li=[]print("请逐条添加数据!(若退出请输入0000)")whileTrue:print("请输入:&q

    2022年9月17日
  • 修改mysql的密码_sql数据库修改密码

    修改mysql的密码_sql数据库修改密码MySQL是一个关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。搭配PHP和Apache可组成良好的开发环境。因此用的很广泛。很多人都会遇到MySQL需要修改密码的情况,比如密码太简单、忘记密码等等。这里我就教大家几种修改MySQL密码的方法。这里以修改root密码为例,操作系统为windows。注意:修改MySQL是需要有mysql里的root权限的,

    2022年8月12日
  • CSDN前1000名博主[通俗易懂]

    CSDN前1000名博主[通俗易懂]博主简介stpeace排名:1原创:2166粉丝:7180积分:181660等级:10stpeace的专栏中国本博客供大家交流,欢迎各抒己见。博文中的内容禁止用yuanmeng001排名:2原创:5286粉丝:10660积分:170616等级:10袁萌专栏无穷小微积分倡导者–北大教授null老师yjclsx排名:3原创:162…

    2022年8月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号