剖析UIviewController生命周期方法
面试必问问题:一是内存管理,二是viewcontroller的生命周期方法,三是tableview的复用,四是异步同步网络请求,五是多线程,六是数据存储。
- UIviewController的生命周期方法调用顺序
假设现在有一个 AViewController(简称Avc) 和 BViewController (简称Bvc)
通过navigationController的push实现 Avc 到 Bvc的跳转,那么让我们来看下Avc 和 Bvc生命周期的方法是怎样一个执行顺序。
下面就是正确的顺序
2013-11-25 10:32:43.937 TestJumpABC[647:a0b] A viewDidLoad
2013-11-25 10:32:43.938 TestJumpABC[647:a0b] A viewWillAppear
2013-11-25 10:32:43.962 TestJumpABC[647:a0b] A viewDidAppear
2013-11-25 10:32:45.972 TestJumpABC[647:a0b] B viewDidLoad
2013-11-25 10:32:45.972 TestJumpABC[647:a0b] A viewWillDisappear
2013-11-25 10:32:45.975 TestJumpABC[647:a0b] B viewWillAppear
2013-11-25 10:32:45.978 TestJumpABC[647:a0b] A viewDidDisappear
2013-11-25 10:32:45.978 TestJumpABC[647:a0b] B viewDidAppear
那么我们从Bvc 返回到 Avc呢?执行顺序又是怎么样的呢?
2013-11-25 10:34:15.719 TestJumpABC[647:a0b] B viewWillDisappear
2013-11-25 10:34:15.721 TestJumpABC[647:a0b] A viewWillAppear
2013-11-25 10:34:16.226 TestJumpABC[647:a0b] B