首页 > 解决方案 > 在 AppDelegate 中实例化初始 UIViewController

问题描述

我知道,有很多类似的线程,但我仍在努力解决这个问题。

我想在 AppDelegate 中实例化某个视图控制器(仅当用户未登录时)。但即使没有身份验证检查我在应用程序委托中实例化我的登录控制器的代码似乎被忽略:

class AppDelegate: UIResponder, UIApplicationDelegate {
    
    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
        self.window = UIWindow(frame: UIScreen.main.bounds)
        let loginController = UIStoryboard(name: "Main", bundle: .main).instantiateViewController(withIdentifier: "loginController") as! LoginController
        self.window!.rootViewController = loginController
        self.window!.makeKeyAndVisible()
        
        return true
    }
}

无论我在应用程序委托中实例化哪个视图控制器,启动我的应用程序时都会出现在故事​​板中设置的初始视图控制器。(注意:如果没有在情节提要中将视图控制器设置为初始值,则应用程序将以黑屏启动)。我的错误是什么?

非常感谢亚历克斯

标签: swiftxcodeuiviewcontrollerstoryboardappdelegate

解决方案


在现代 iOS 应用程序中,应用程序委托没有窗口。您可以创建一个,但它将被替换。可见窗口属于场景委托。您需要使用场景委托代码创​​建界面。


推荐阅读