使用 Storyboards 以编程方式设置初始视图控制器


Swift 中的 Storyboards 是什么?

在 Swift 中,Storyboard 是一种工具,它为您提供了一个用户界面来设计应用程序的用户界面。它为您提供所有屏幕及其之间连接的可视化表示。您可以使用 Storyboard 轻松地将所有布局组件连接到您的控制器类中。

什么是 instantiateViewController(withIdentifier:)?

您可以使用 UIStoryboard 类的 instantiateViewController(withIdentifier:) 方法以编程方式设置初始视图控制器。

此方法将一个标识符字符串作为参数,该字符串应与您要设置为初始视图控制器的视图控制器的 Storyboard ID 匹配。

示例

以下是如何使用此方法在名为“Main”的 Storyboard 中设置初始视图控制器的示例:

import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    
   var window: UIWindow?
    
   func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
      // creating UIStoryboard object and initial view controller.
      let storyboard = UIStoryboard(name: "Main", bundle: nil)
      let initialController = storyboard.instantiateViewController(withIdentifier: "TestController")
        
      self.window = UIWindow(frame: UIScreen.main.bounds)
      self.window?.rootViewController = initialController
      self.window?.makeKeyAndVisible()
      return true
    }
}

在通常情况下,我们将在 AppDelegate 的方法中进行设置以设置初始控制器:

确保您使用的 Storyboard ID 在您要设置为初始视图控制器的视图控制器的“Identity Inspector”中设置。

结论

Xcode 也允许您使用 Storyboard 设置初始视图控制器。您可以检查您想要的初始控制器。但是您可以以编程方式设置初始视图控制器。为此,您可以在 AppDelegate 的函数(即 didFinishLaunchingWithOptions())中编写一些代码。此方法在您第一次打开应用程序时调用。

在此方法中,您可以使用 UIStoryboard 类的 instantiateViewController(withIdentifier:) 方法创建 Storyboard 上设计的所需视图控制器的对象。之后,您可以将此对象设置为窗口对象的根视图控制器。

需要注意的是,当您从 Storyboard 初始化视图控制器时,必须传递正确的 Storyboard ID。

更新于: 2023年2月28日

1K+ 阅读量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告