首先我们来了解一下什么是viewController。viewController叫做视图控制器。对内是用于管理视图,对外则是与其他的viewcontroller进行通信。它继承于NSObject。它分为两种类型,一种叫contentViewController,内容视图控制器,主要用于体现内容,如UITableView UIViewController这种直接显示内容的;还有一种叫做containerViewController,容器视图类。典型的就是tabBar,和navigation.它还包含好几个其它的viewController.
每个view都有一个viewController。且view的生命周期也在viewController里面。所以在view释放之前,viewcontroller是不可以释放的。那viewController的生命周期到底是怎么样的呢?和我一步一步来看吧。
step1:initWithNib viewController 会进行alloc,并init.
step2: loadView 在这里会看它的子类是否有重写这个函数,如果重写了则调用子类的,否则就调用她自己的。注意,这个时 候视图还是没有没加载进来的哦。
step3:viewDidLoad 这个时候视图已经存在了。可以在这里添加你想要添加的UI控件了。
step4:viewWillAppear 视图将出现在屏幕上了
step5:viewDidAppear 视图已经成功在屏幕上渲染完成了
step6:viewWillDisappear 视图将要消失了
step7:viewDidDisappear 视图从屏幕上消失了
step8:viewDidUnLoad 当发生内存警告的时候,如果本视图不是当前正在显示的视图,则会执行这个函数。将子视图释放。
step9:dealloc 释放viewController
而view的生命周期则是step3_step8.