UIViewController:响应iOS中的查看事件的生命周期

通常,在学习Objective-C和iOS开发时,您将遇到一个名为UIViewController的类。 此类是应用程序开发周期中非常重要的一部分。 根据Apple文档定义: UIViewController类提供了用于管理iOS应用程序视图的基础结构。 视图控制器管理一组视图,这些视图构成了应用程序用户界面的一部分。 苹果

简单来说,视图控制器就是:视图的控制器。 它通过控制与视图关联的对象来管理应用内容在屏幕上的呈现。 一些职责包括通常根据对数据的更改来更新视图的内容,响应用户与视图的交互,调整视图的大小,管理整个界面的布局以及相关行为。 例如,当视图更改时,视图控制器会自动调用其自己的方法,以便子类可以响应该更改。 根据Apple的文档,所有这些更改通常会在以下阶段发生:

在此图中,您可以推断在事件设置为显示或消失之前, 调用Will方法。 另一方面,事件发生后将调用Did方法。 另外,请注意,对于每个Will方法调用,都有一个Did方法形式的对抗动作,该动作表示视图控制器对视图的完整控制周期。

但是,需要注意的是,在此视图控制器周期开始之前,必须在将控制器的视图加载到内存中之后首先调用viewDidLoad方法。 这是第一个要验证的方法,只有在调用或加载有问题的视图后,它才会被调用一次。 当视图控制器自动调用它时,此视图控制器将使用代码填充视图。 这是执行未在Storyboard中完成的任何视图初始化的好地方。 首次出现视图时应加载的所有内容都必须在viewDidLoad方法中实现。

视图控制器的生命周期中包括的其他方法是:

  • viewWillAppear:在将视图控制器的视图添加到视图层次结构之前以及在为该视图配置任何动画之前,将调用此方法。 换句话说,它用于准备将视图显示在屏幕上,并且设备已准备好在呈现视图之前显示UIView实例。 您可以重写此方法以执行与显示视图相关的自定义任务,例如在视图变为可见之前隐藏字段或禁用操作。
  • viewDidAppear:通知视图控制器其视图已添加到视图层次结构或窗口中。 例如,您可以使用等待屏幕覆盖该视图以在视图中显示。
  • viewWillDisappear:在实际删除视图之前和配置任何动画之前,将调用此方法。 重写此方法,例如提交编辑更改和类似行为。
  • viewDidDisappear:通知视图控制器其视图已从视图层次结构中删除。 如果您希望在关闭或隐藏视图方面发生任何其他事情,可以覆盖此方法。

总而言之,这些阶段通常确定视图控制器的周期。 这些是跟踪和确认视图事件(如外观和消失)顺序的方法。 该视图出现在屏幕上并变为可见,然后关闭该视图时便消失。 与viewDidLoad相比,在视图控制器生命周期中可以多次调用其余这些方法。

为了了解有关这些事件或UIViewController类或相关子类和对象的更多信息,请参阅Apple的iOS开发人员库。