UIViewController的生命周期

alloc   -------  分配内存空间

init      -------初始化对象的数据,每次实例化都调用一次,默认在这之前会调initWithFrame;

loadView -------构建视图层级结构,可以重新设置根视图;

viewDidLoad--------视图加载完成,程序启动时只加载一次;

viewWillAppear ---------视图将要出现在屏幕上;

viewWillLayoutSubViews--------视图将要布局子视图,(用代码调整控件布局才会使用);

viewDidLayoutSubviews  ---------视图布局子控件完成;

viewDidAppear     --------------视图完成显示,视图已经出现在屏幕上,刷新每次都加载,都调用;

viewWillDisappear  ---------------视图将要从屏幕上消失;

viewDidDisappear   ----------------视图已经从屏幕上消失;

dealloc   ------------------释放视图控制器;



+(load) -----------加载类的时候调用,iOS应用启动的时候会加载所有的类,最先调用load方法;

+(instanceType )initializes是在实例化类的时候,会在第一个实例加载前执行,只执行一次,如果没有向类发送消息,这个方法不执行,父类比子类线收到消息.



View Controller

生成view:
loadView
1、loadView在每一次使用self.view这个property,并且self.view为nil的时候被调用,用以产生一个有效的self.view(手工维护views,必须重写该方法)
2、view 控制器收到didReceiveMemoryWarning的消息时, 默认的实现是检查当前控制器的view是否在使用。 如果它的view不在当前正在使用的view hierarchy里面,且你的控制器实现了loadView方法,那么这个view将被release, loadView方法将被再次调用来创建一个新的view。(注:ios6.0以下 如果没有实现loadview,内存警告时不会调用viewDidUnload)
viewDidLoad
一般我们会在这里做界面上的初始化操作,比如往view中添加一些子视图、从数据库或者网络加载模型数据到子视图中
官网提供的生成view的流程图:




官网提供的卸载view的流程图:UIViewController的生命周期_第1张图片


你可能感兴趣的:(UIViewController的生命周期)