Swift 更改 AppDelegate 中的 rootViewController 以呈现主要或登录入门流程

首先,当你处理多个流时,这就是可以有效使用 Storyboard 的地方。默认情况下,你的应用程序使用 Main.storyboard 作为主流。你的入职/替代流程可以包含在辅助故事板中,例如。Onboarding.storyboard

这有许多优点:

  • 在开发人员团队中,每个用户流的工作可以分开
  • 更清晰的源代码控制(git)
  • 关注点分离

当你的应用程序启动时,你可以确定应该显示哪个流程。这个逻辑可以包含在你的 AppDelegate 中:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    let isFirstRun = true // logic to determine goes here
    if isFirstRun {
        showOnboarding()
    }
    return true
}

为了展示 Onboarding 流程,值得考虑一下,一旦使用它的人完成了旅程,你将如何处理解雇它的体验,并且这对于你尝试创建的内容在语义上是正确的。

处理办法:

两种主要方法是:

  1. 交换 App 主窗口的根视图控制器
  2. 将 Onboarding 流作为模态旅程呈现,与主流重叠。

这个的实现应该包含在 AppDelegate 的扩展中。