标签:
下图是之前standford 课程时,做的一个关于vc life cycle 的图。
值得注意的是
1. 在viewdidload 时,geometry并未最终确定(此时view 刚刚创建),这时若根据self.view.frame 设置subview 的geometry properties,可能最终显现的与想的不一样。这一点之前犯过一些错误,谨记。
2.在viewdidload 之前,outlet 并未set, 当用segue 转场时,若要设置outlet相关的properties,无效。
3. 只要geometry变化,viewWillLayoutSubviews 和 viewDidLayoutSubviews 就会调用(实际上self.view 在调用 layoutSubview之前,先调用viewWillLayoutSubviews,..之后,调用viewDidLayoutSubviews),在viewwillappear 和didappear 之间可能会调用多次.
一般在以上方法中需要做什么:
1. viewDidLoad
初始化设置view controller(如从本地或网络读取数据,),add gestures,增加subviews
不要再这里初始化任何geometry相关的内容,因为geometry未确定
2. viewwillappear, viewdidappear,viewwilldisappear,viewdiddisappear
增加和移除observer,
再viewdidappear 中不要再做改变ui相关的事情,否则app出现后,会有种卡顿的感觉。
?
?
?
iOS开发总结(A0)- ViewController Life Cycle 及主要阶段的任务
标签:
原文地址:http://www.cnblogs.com/beddup/p/4610917.html