Skip to content

1.3 在SceneDelegate中设置根视图控制器

SceneDelegate 中设置根视图控制器是纯代码 iOS 开发中至关重要的一步,它决定了你的应用启动后用户看到的第一个界面。让我们一起深入了解如何正确配置它!🚀

理解 SceneDelegate 的作用

SceneDelegate 负责管理应用场景的生命周期。在没有 Storyboard 的项目中,它承担了创建 UIWindow 并设置根视图控制器的重任。你可以把它想象成舞台的总导演,负责安排演员(视图控制器)的登场。

  • 它处理应用界面的显示和状态恢复。
  • 它响应应用生命周期事件,例如应用进入前台或后台。
  • 它管理多个窗口和屏幕。

创建你的第一个视图控制器

首先,你需要创建一个视图控制器,作为你的应用的根视图控制器。这可以通过创建一个继承自 UIViewController 的类来实现。例如,你可以创建一个名为 ViewController 的类。

swift
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // 在这里添加你的视图和逻辑
        view.backgroundColor = .white // 设置背景颜色为白色
    }
}

这段代码创建了一个简单的视图控制器,并在 viewDidLoad 方法中设置了背景颜色为白色。

SceneDelegate 中配置根视图控制器

现在,让我们在 SceneDelegate 中配置根视图控制器。在 SceneDelegate.swift 文件中,找到 scene(_:willConnectTo:options:) 方法。在这个方法中,你需要创建 UIWindow,创建你的视图控制器,并将视图控制器设置为 UIWindowrootViewController

swift
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    guard let windowScene = (scene as? UIWindowScene) else { return }

    // 1. 创建 UIWindow
    window = UIWindow(windowScene: windowScene)

    // 2. 创建你的根视图控制器
    let viewController = ViewController()

    // 3. 将视图控制器设置为 UIWindow 的根视图控制器
    window?.rootViewController = viewController

    // 4. 使 UIWindow 可见
    window?.makeKeyAndVisible()
}

这段代码完成了以下步骤:

  1. 创建 UIWindow: 使用 UIWindowScene 创建一个新的 UIWindow 实例。
  2. 创建根视图控制器: 实例化你之前创建的 ViewController
  3. 设置 rootViewController: 将 ViewController 实例设置为 UIWindowrootViewController
  4. 使 UIWindow 可见: 调用 makeKeyAndVisible() 方法,使 UIWindow 可见,从而显示你的应用界面。

确保 UIWindow 属性存在

SceneDelegate 中,你需要声明一个 UIWindow 属性。确保你的 SceneDelegate 类包含以下属性:

swift
var window: UIWindow?

这个属性用于存储你创建的 UIWindow 实例。

运行你的应用

现在,你可以运行你的应用,你应该能看到一个空白的白色屏幕,这表明你的根视图控制器已经成功设置。🎉

通过以上步骤,你已经成功地在 SceneDelegate 中设置了根视图控制器,为你的纯代码 iOS 应用打下了坚实的基础。记住,理解 SceneDelegate 的作用以及如何正确配置它是非常重要的。继续探索,你会发现更多有趣的知识! 🤩

本站使用 VitePress 制作