選項 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)
}
}
}