【发布时间】:2020-01-30 12:54:45
【问题描述】:
所以 iOS 13 真的给我带来了麻烦!我无法理解如何在我现有的应用程序中使用 SceneDelegate。
目前我在 AppDelegate 中使用布尔检查来确定首先显示哪个 ViewController。我需要弄清楚如何使用 SceneDelegate 复制它。
我主要关心的是如何确保我的应用可以在 iOS 13 和之前的任何 iOS 版本上运行?如果我添加 SceneDelegate,它不会使我在 iOS 13 之前运行的应用程序崩溃吗?
这是我目前设置 rootVC 的方法
if (loggedIn == nil){
Utilities.setLoginAsInitialViewContoller(window: window)
}
else
{
if(termsAgree == nil){
Utilities.setTermsAsInitialViewController(window: window)
}
if(loggedIn != nil){
if(termsAgree != nil){
Utilities.setHomeAsInitialViewContoller(window: window)
}
}
}
class func setLoginAsInitialViewContoller(window:UIWindow) {
let storyboard = UIStoryboard(name: “Login”, bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: “LoginViewController”)
window.rootViewController = controller
window.makeKeyAndVisible()
}
class func setHomeAsInitialViewContoller(window:UIWindow) {
let storyboard = UIStoryboard(name: “Home”, bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: “MainViewNavController”)
window.rootViewController = controller
window.makeKeyAndVisible()
}
class func setTermsAsInitialViewController(window:UIWindow){
let storyboard = UIStoryboard(name: “Terms”, bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: “TermsViewController”)
window.rootViewController = controller
window.makeKeyAndVisible()
}
以上代码包含在我的Utilities.swift 类中,并在我的AppDelegate.swift 中调用,如下所示:
Utilities.decideInitialViewController(window: self.window!)
【问题讨论】:
-
你找到解决这个问题的方法了吗?
标签: swift appdelegate ios13 uiscenedelegate