首页 > 解决方案 > 创建对象时的 ViewController 类

问题描述

我创建视图控制器类并用函数和变量填充它们,但我没有创建这些类的对象的主要内容。但是,我的程序仍然有效。所以,我的问题是这些类的实际实例是什么时候创建的?谁创造了它们?

标签: swiftoopuiviewcontroller

解决方案


基于 Apple 开发者文档:

UIViewController 类定义了所有视图控制器共有的共享行为。您很少直接创建 UIViewController 类的实例。相反,您将 UIViewController 子类化并添加管理视图控制器的视图层次结构所需的方法和属性。

https://developer.apple.com/documentation/uikit/uiviewcontroller


生命周期事件顺序

  1. init(coder:)
  2. (void)loadView
  3. (void)viewDidLoad
  4. (void)viewWillAppear
  5. (void)viewDidAppear
  6. (void)didReceiveMemoryWarning
  7. (void)viewWillDisappear
  8. (void)viewDidDisappear

这是 ViewController 可用的时间

  • 初始化(编码器:)

在 中创建应用程序的视图时Storyboardinit(coder:)会调用该方法来实例化视图控制器并将其变为现实。在视图控制器的初始阶段,您通常会分配视图控制器在其生命周期内所需的资源。在这种方法中,您可以实例化依赖项,包括您将以编程方式添加到视图中的子视图。并注意在对象的生命周期中调用它,就像所有的 init 方法一样init(coder:)only once

init(coder:) 就像 c++ 或其他具有在内存中创建对象的主要功能的编程语言

但是Swift你不需要调用这个方法,因为AppDelegate已经为你做了这个;)

在此处输入图像描述


推荐阅读