ViewController的生命周期
来源:互联网 发布:gta5n卡掉帧如何优化 编辑:程序博客网 时间:2024/05/16 02:42
ViewController中执行顺序
alloc -> init/initWithNibName -> loadView -> viewDidLoad -> viewWillAppear -> viewDidAppear -> viewWillDisappear -> viewDidDisappear -> dealloc
其中,viewWillUnload和viewDidUnload已经在iOS6被废弃了
另外,整个过程没有viewWillLoad。还有,viewDidLoad和viewDidUnload并不是成对的。
push和pop执行顺序
例如CurrentView在navigation controller中push一个新的NewView,顺序为
2015-04-14 11:04:07.644 Demo[12985:839324] CurrentView Will Disappear
2015-04-14 11:04:07.644 Demo[12985:839324] NewView Will appear
2015-04-14 11:04:08.149 Demo[12985:839324] CurrentView Did Disappear
2015-04-14 11:04:08.149 Demo[12985:839324] NewView Did appear
pop的顺序为
2015-04-14 11:04:19.955 Demo[12985:839324] CurrentView Will Appear
2015-04-14 11:04:20.458 Demo[12985:839324] CurrentView Did Appear
但需要注意的是,在特殊情况下,比如在右滑返回中,滑动到一半后返回,出现的情况是:
2015-04-14 11:39:36.289 Demo[13319:862461] CurrentView Will Appear
2015-04-14 11:39:39.382 Demo[13319:862461] CurrentView Will Disappear
2015-04-14 11:39:39.382 Demo[13319:862461] CurrentView Did Disappear
2015-04-14 11:39:39.382 Demo[13319:862461] NewView Will appear
2015-04-14 11:39:39.382 Demo[13319:862461] NewView Did appear
详见博文:http://wangling.me/2014/02/the-inconsistent-order-of-view-transition-events.html
也就是说在viewWillAppear中执行的一些操作,可能在右滑一半并取消的时候也执行了,会导致一些问题,比如NavigationBar的显示等。
最近遇到的坑
但是右滑返回时只考虑了Disappear和Appear,没考虑push页面时,viewDidLoad的顺序
发现在iOS8及以下系统里,在push时,会先执行新页面的viewDidLoad,再执行前一个页面的viewWillDisappear
而iOS9中则先执行viewWillDisappear,再执行viewDidLoad
求解,为什么会有这样的问题。。。
- ViewController的生命周期
- 再谈ViewController的生命周期
- ViewController的生命周期
- ViewController的生命周期
- ViewController的生命周期
- ViewController的生命周期
- ViewController的生命周期
- ios--ViewController的生命周期
- ViewController的生命周期
- ViewController 的生命周期分析
- ios ViewController的生命周期
- ViewController的生命周期
- viewController的生命周期
- ViewController的生命周期
- ViewController的生命周期
- ViewController的生命周期
- ViewController的生命周期
- ViewController的生命周期
- 大数据工程师:大数据的java基础 第四周
- 如何提高程序的健壮性,增加判断。
- android studio 开发 Execution failed for task
- cubic-bezier贝塞尔曲线CSS3动画工具
- 简单对象访问协议
- ViewController的生命周期
- 剑指offer:滑动窗口的最大值
- 1134: 【C语言训练】求PI*
- 拼图响应式前端框架版响应式后台正式发布
- c语言中static 函数和普通函数的区别?
- 矩阵快速幂专题(二)
- MySQL多表查询
- u-boot网络启动分析(二) 驱动注册
- 【day0402】C++标准异常