打开程序 -> 执行main函数 -> 执行UIApplicationMain函数 -> 初始化UIApplication(创建和设置代理对象,开启事件循环) ->监听系统事件
调用代理方法
程序加载完毕:application: didFinishLaunchingWithOptions:
程序获取焦点:applicationDidBecomeActive:
程序进入后台:applicationDidEnterBackground:
程序失去焦点:applicationWillResignActive:
程序从后台回到前台:applicationWillEnterForeground
内存警告,可能要终止程序:applicationDidReceiveMemoryWarning:
程序即将退出:applicationWillTerminate:
- > 结束程序
控制器的生命周期
loadView(加载控制器的view时调用) ->
viewDidLoad(控制器的view加载完毕时调用) ->
viewWillAppear(控制器的view即将显示时调用) ->
viewDidAppear(控制器的view完全显示时调用) ->
viewWillDisappear(控制器的view即将消失时调用) ->
viewDidDisappear(控制器的view完全消失时调用) -> didReceiveMemoryWarning(控制器接收到从UIApplication传来的内存警告时调用,询问view是否可以被销毁(view不在window上就可以销毁)) ->
viewWillUnload(控制器的view即将销毁时调用) ->
销毁view(此时控制器的属性都没有被清理) ->
viewDidUnload(控制器的view完全销毁时调用,清空控制器内不需要的属性) ->loadView(需要再次显示控制器是在调用) 往复循环
调用代理方法
程序加载完毕:application: didFinishLaunchingWithOptions:
程序获取焦点:applicationDidBecomeActive:
程序进入后台:applicationDidEnterBackground:
程序失去焦点:applicationWillResignActive:
程序从后台回到前台:applicationWillEnterForeground
内存警告,可能要终止程序:applicationDidReceiveMemoryWarning:
程序即将退出:applicationWillTerminate:
- > 结束程序
控制器的生命周期
loadView(加载控制器的view时调用) ->
viewDidLoad(控制器的view加载完毕时调用) ->
viewWillAppear(控制器的view即将显示时调用) ->
viewDidAppear(控制器的view完全显示时调用) ->
viewWillDisappear(控制器的view即将消失时调用) ->
viewDidDisappear(控制器的view完全消失时调用) -> didReceiveMemoryWarning(控制器接收到从UIApplication传来的内存警告时调用,询问view是否可以被销毁(view不在window上就可以销毁)) ->
viewWillUnload(控制器的view即将销毁时调用) ->
销毁view(此时控制器的属性都没有被清理) ->
viewDidUnload(控制器的view完全销毁时调用,清空控制器内不需要的属性) ->loadView(需要再次显示控制器是在调用) 往复循环