1.3 在SceneDelegate中设置根视图控制器
在
SceneDelegate中设置根视图控制器是纯代码 iOS 开发中至关重要的一步,它决定了你的应用启动后用户看到的第一个界面。让我们一起深入了解如何正确配置它!🚀
理解 SceneDelegate 的作用
SceneDelegate 负责管理应用场景的生命周期。在没有 Storyboard 的项目中,它承担了创建 UIWindow 并设置根视图控制器的重任。你可以把它想象成舞台的总导演,负责安排演员(视图控制器)的登场。
- 它处理应用界面的显示和状态恢复。
- 它响应应用生命周期事件,例如应用进入前台或后台。
- 它管理多个窗口和屏幕。
创建你的第一个视图控制器
首先,你需要创建一个视图控制器,作为你的应用的根视图控制器。这可以通过创建一个继承自 UIViewController 的类来实现。例如,你可以创建一个名为 ViewController 的类。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 在这里添加你的视图和逻辑
view.backgroundColor = .white // 设置背景颜色为白色
}
}这段代码创建了一个简单的视图控制器,并在 viewDidLoad 方法中设置了背景颜色为白色。
在 SceneDelegate 中配置根视图控制器
现在,让我们在 SceneDelegate 中配置根视图控制器。在 SceneDelegate.swift 文件中,找到 scene(_:willConnectTo:options:) 方法。在这个方法中,你需要创建 UIWindow,创建你的视图控制器,并将视图控制器设置为 UIWindow 的 rootViewController。
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()
}这段代码完成了以下步骤:
- 创建
UIWindow: 使用UIWindowScene创建一个新的UIWindow实例。 - 创建根视图控制器: 实例化你之前创建的
ViewController。 - 设置
rootViewController: 将ViewController实例设置为UIWindow的rootViewController。 - 使
UIWindow可见: 调用makeKeyAndVisible()方法,使UIWindow可见,从而显示你的应用界面。
确保 UIWindow 属性存在
在 SceneDelegate 中,你需要声明一个 UIWindow 属性。确保你的 SceneDelegate 类包含以下属性:
var window: UIWindow?这个属性用于存储你创建的 UIWindow 实例。
运行你的应用
现在,你可以运行你的应用,你应该能看到一个空白的白色屏幕,这表明你的根视图控制器已经成功设置。🎉
通过以上步骤,你已经成功地在 SceneDelegate 中设置了根视图控制器,为你的纯代码 iOS 应用打下了坚实的基础。记住,理解 SceneDelegate 的作用以及如何正确配置它是非常重要的。继续探索,你会发现更多有趣的知识! 🤩