选项 2 模拟(更好)呈现替代流程
在最直接的实现中,Onboarding 流可以简单地在模态上下文中呈现,因为在语义上用户是在单个旅程中。
[Apple 人机界面指南 - 模态] [1]:
考虑创建模态上下文时,只有在获得某人的注意力,必须完成或放弃任务以继续使用该应用程序或保存重要数据时,才能创建模态上下文。
以模态方式呈现允许在旅程结束时解雇的简单选项,几乎没有交换控制器。
标准方式也支持自定义转换,因为它使用 ViewController.present()
API:
// MARK: - Onboarding
extension AppDelegate {
func showOnboarding() {
if let window = window, let onboardingViewController = UIStoryboard(name: "Onboarding", bundle: nil).instantiateInitialViewController() as? OnboardingViewController {
onboardingViewController.delegate = self
window.makeKeyAndVisible()
window.rootViewController?.present(onboardingViewController, animated: false, completion: nil)
}
}
func hideOnboarding() {
if let window = UIApplication.shared.keyWindow {
window.rootViewController?.dismiss(animated: true, completion: nil)
}
}
}