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 流程,值得考虑一下,一旦使用它的人完成了旅程,你将如何处理解雇它的体验,并且这对于你尝试创建的内容在语义上是正确的。
处理办法:
两种主要方法是:
- 交换 App 主窗口的根视图控制器
- 将 Onboarding 流作为模态旅程呈现,与主流重叠。
这个的实现应该包含在 AppDelegate 的扩展中。