UIViewController生命周期
- 各函数调用时间
- init 只有相关数据的初始化
- loadview 只初始化view
- viewDidLoad 创建一些附加的view和控件,可能会被调用多次
- viewDidAppear 用于显示后,在切换动画后需要进行的操作
- viewWillAppear 在view被添加到superview之前,在切换动画之前调用,例如键盘弹出,特殊的过程动画(状态条和navigationbar颜色等)
- viewDidUnload view已经为nil时,一般发生内存警告时,一般在此将不再显示的view进行释放。
各操作下消息传递,以xcode中新建的singleview项目为例进行实验
- 程序启动
- AppDelegate中 [didFinishLaunchingWithOptions]
- ViewController中 [viewDidLoad]
- AppDelegate中 [applicationDidBecomeActive]
- 按下home进入后台
- AppDelegate中 [applicationWillResignActive]
- AppDelegate中 [applicationDidEnterBackground]
- 从后台返回
- AppDelegate中 [applicationWillEnterForeground]
- AppDelegate中 [applicationDidBecomeActive]
- 下拉遮挡
- AppDelegate中 [applicationWillResignActive]
- 如果成功遮挡则执行iii、iv否则进入5. 遮挡返回
- AppDelegate中 [applicationDidBecomeActive]
- AppDelegate中 [applicationWillResignActive]
- 遮挡返回
- AppDelegate中 [applicationDidBecomeActive]