IOS |无法在应用程序委托中更改根视图控制器

问题描述 投票:0回答:1

我正在构建一个应用程序,如果用户已登录,则必须更改其根视图控制器。如果用户已登录,则我必须显示一个标签栏控制器作为主屏幕(如果用户未登录,我必须显示身份验证控制器。我的两个控制器都是情节提要控制器。现在在我的应用程序委托中,我输入了以下代码

        window = UIWindow(frame: UIScreen.main.bounds)

        if UserDefaults.standard.bool(forKey: Constants.UserDefaultsKeys.isLoggedIn){
            initialViewController = storyboard.instantiateViewController(identifier: Constants.StoryBoards.homeViewController) as! TabController
        }else{
            initialViewController = storyboard.instantiateViewController(identifier: Constants.StoryBoards.authenticationController)
        }
        window?.rootViewController = initialViewController
        window?.makeKeyAndVisible()

根据代码,如果用户已登录,则必须显示TabController。但未显示。我尝试调试,并且正在调用TabControllerviewDidLoad,但仍然是我的authenticationController是正在显示,这可能是因为authenticationController被设置为情节提要中的初始viewcontroller。有人可以帮我解决问题

ios swift uiviewcontroller storyboard
1个回答
0
投票

只需在情节提要图中取消选中“是初始视图控制器”,即可使用您的身份验证控制器。您可以通过编程方式加载它。

demo

© www.soinside.com 2019 - 2024. All rights reserved.