viewController的生命周期

看图辨周期

在这里插入图片描述
在这幅图里,我们可以清楚的看到viewController的生命周期,以及每个方法之间的关系,以下我们就讲讲每个方法的意义及用途。

图中方法介绍(按顺序)

1. loadView

用来负责创建UIViewController的view
每次访问UIViewController的view,而且view为nil时,loadView方法就会被调用。

2. viewDidLoad

在loadView方法后被调用,可以进行自定义数据以及动态创建其他控件。

死循环

当我们重写loadView却没有加载view,而viewDidLoad里写了要加载的控件时,则会在loadViewviewDidLoad之间死循环。

而当viewDidLoad里没有要加载的控件时,新版Xcode会循环几遍,然后跳出到viewWillAppear里,随后又跳了回去,循环将近6次。
而旧版Xcode会循环2遍,之后停止。

3. viewWillAppear

视图将出现在屏幕前,马上这个视图就会被展示的时候调用。

4. viewWillLayoutSubviews

控制器的view将要布局子控件。
当当前控制器的viewframe设为CGRectZero时不会调用

5. viewDidLayoutSubviews

控制器的view已经布局完子控件。

6. viewDidAppar

视图已经渲染完成,在屏幕上展示时调用。

7. viewWillDisappear

视图将被从屏幕上移除之前执行。

8. viewDidDisappear

视图已经从屏幕上移除,用户看不到这个视图时执行。

9. dealloc

视图销毁,对于viewController的内存释放。

例如:

A—(跳转)—>B

此时A不会触发dealloc方法,但是当从B返回A时,会触发B的dealloc方法。

10. didReceiveMemoryWarning/viewDidUnload

已经更新为viewDidUnload,当内存告警时,会自动调用此方法,效果是将已经加载好的视图上面的控件全部销毁,只留下loadView走完后生成的view

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值