ARC环境单个viewController的生命周期initWithCoder:(NSCoder *)aDecoder:(如果使用storyboard或者xib)loadView:加载viewviewDidLoad:view加载完毕viewWillAppear:控制器的view将要显示viewWillLayoutSubviews:控制器的view将要布局子控件viewDidLayoutSubviews:控制器的view布局子控件完成这期间系统可能会多次调用viewWillLayoutSubviews、viewDidLayoutSubviews俩个方法viewDidAppear:控制器的view完全显示viewWillDisappear:控制器的view即将消失的时候这期间系统也会调用viewWillLayoutSubviews 、viewDidLayoutSubviews 两个方法viewDidDisappear:控制器的view完全消失的时候多个viewControllers跳转当我们点击push的时候首先会加载下一个界面然后才会调用界面的消失方法initWithCoder:(NSCoder *)aDecoder:ViewController2 (如果用xib创建的情况下)loadView:ViewController2viewDidLoad:ViewController2viewWillDisappear:ViewController1 将要消失viewWillAppear:ViewController2 将要出现viewWillLayoutSubviews ViewController2viewDidLayoutSubviews ViewController2viewWillLayoutSubviews:ViewController1viewDidLayoutSubviews:ViewController1viewDidDisappear:ViewController1 完全消失viewDidAppear:ViewController2 完全出现小结整个控制器声明周期:viewDidLoadviewWillAppearviewWillLayoutSubviewsviewDidLayoutSubviewsviewDidAppearviewWillDisappearviewDidDisappear二、非ARC环境下didReceiveMemoryWarning:当app收到内存警告的时候会发消息给视图控制器。app从来不会直接调用这个方法,而是当系统确定可用内存不足的时候采取调用。如果你想覆写这个方法来释放一些控制器使用的额外内存,你应该在你的实现方法中调用父类的实现方法。