UIViewController生命周期方法执行顺序

为了方便描述 假设有两个视图控制器
一个AVC 一个BVC
通过navgationController的push实现AVC 到BVC的跳转
现在来看一下AVC 和 BVC生命周期的方法是怎样一个执行顺序。
1. AVC viewDidLoad
2. AVC viewWillAppear
3. AVC viewDidApper
4. BVC viewDidLoad
5. AVC viewWillDisappear
6. BVC viewWillAppear
7. AVC viewDidDisappear
8. BVC viewDidAppear
再来看看从BVC返回到AVC中 方法的执行顺序
1. BVC viewWillDisappear
2. AVC viewWillAppear
3. BVC viewDidDisappear
4. AVC viewDidAppear

其实在viewDidLoad之前还有个loadView的方法
当view需要被展示而它却是nil的时候 视图控制器就会调用loadView这个方法

什么时候执行viewDidLoad?
举例:AVC push 到了BVC 然后BVC 再pop回AVC 在pop回AVC时由于AVC里面的view和subViews已经存在里面了不需要重新加载 所以这个时候AVC不会再调用viewDidLoad这个方法 这里存在一种特殊的情况那就是当AVC push到 BVC时由于要加载BVC的视图内存刚好在这时候又不足了 那么系统会把AVC里的视图全部释放掉 这样当BVC pop 到AVC时 由于AVC里面的视图已经被释放了要重新加载这时就会调用viewDidLoad方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值