控制器的生命周期、程序启动过程

控制器的生命周期

LoadView:加载view
ViewDidLoad控制器的view加载完毕时加载。
[super viewDidLoad]当有子类是需要调用。没有子类时可调可不调用。
一般我们会在这里做界面上的初始化操作,比如往view中添加一些子视图、从数据库或者网络加载模型数据装配到子视图中
ViewWillAppear当控制的view即将显示时调用。
ViewDidLayoutSubViews:即将布局子控件。
ViewDidLayoutSubViews:布局完子控件。多次调用。
ViewDidAppear:显示完毕,动画可以放到这个方法中。
ViewWillDissAppear:即将消失。
ViewDidAppear:完全消失。

非ARC下

viewWillUnload:view即将销毁
viewDidUnload:view消失完毕,清空数据。
发出内存警告且view被释放的时候就会调用viewDidUnload方法,所以一般在释放资源,主要是释放界面元素相关的资源,将相关的实例都赋值为nil

//当控制器的view旋转的时候调用。
viewWillTransitionToSize:withTransitionCoordinator:

dealloc也是用来释放资源的,那跟viewDidUnload有什么关系?
当发出内存警告调用viewDidUnload方法时,只是释放了view,
并没有释放UIViewController,所以并不会调用dealloc方法。
即viewDidUnload和dealloc方法并没有任何关系,
dealloc方法只会在UIViewController被释放的时候调用

程序启动过程

1、main函数里面
2、调用UIApplicationMain函数
3、根据principalClassName提供类名UIApplication创建对象
4、创建UIApplicationDelegate对象,设置UIAppDelegate代理,并遵守协议。
5、开启一个主运行循环,处理事件,可以保持程序一直运行。
6、加载info.plist,并且判断有没有指定main.storyboard,如果指定了就加载
7、


控制器的生命周期、程序启动过程_第1张图片
程序启动过程.png

你可能感兴趣的:(控制器的生命周期、程序启动过程)