如本教程前面所述,ViewController是iOS应用程序的基本构建块。 ViewController是Storyboard中的一个容器,在其上绘制内容视图以创建iOS应用程序。但是,ViewController是用于管理iOS应用程序的内容视图的ViewController。
在iOS开发中,无涯教程使用各种ViewController来管理内容视图,例如UIViewController,TableViewController,CollectionViewController,PageViewController等。在本教程的这一部分中,无涯教程将讨论UIViewController。
UIViewController是管理UIKit应用程序的视图层次结构的对象。 UIViewController定义了iOS应用程序中使用的所有ViewController类型的共享行为和属性。 UIViewController类继承了UIResponder类。
class UIViewController : UIResponder
UIViewController是创建用于构建iOS应用程序的所有ViewController的父类,其中包括内置的ViewController,例如CollectionViewController和TableViewController。在iOS应用程序中,无涯教程不需要直接实例化UIViewController类。相反,无涯教程定义了继承UIViewController的类,并添加了生命周期方法来管理视图层次结构。
查看状态
子类根据ViewController样式的变化来管理侦听器方法,在视图出现或消失时会得到通知。下图显示了方法及其各自的视图状态。

在ViewController样式的变化上通知以下方法。
- viewWillAppear() - 在视图实际可见时调用,并且可以在视图控制器的生命周期中多次调用。
- viewDidAppear() - 第一次将视图控制器加载到内存中时,仅调用一次。
- viewWillDisappear() - 视图即将消失、被覆盖或是隐藏时调用
- ViewDidDisappear() - 视图已经消失、被覆盖或是隐藏时调用
实现ViewController
容器ViewController充当另一个ViewController的容器,即它管理其拥有的其他ViewController(也称为子ViewController)内容的呈现。自定义ViewController也可以充当容器ViewController。
可以调用以下方法来维护容器ViewController。
- addchild(:)
- removeFromParent(:)
- willMove(toParent:)
- didMove(toParent:)
内存管理
ViewControlles提供内置支持,以释放iOS应用程序未使用的内存,这也可以阻止应用程序中的内存泄漏(如果有)。 UIViewController类提供了生命周期方法didRecieveMemoryWarning(),该方法在低级内存条件下得到通知。