简体   繁体   中英

How to set a UITabBarController as rootViewController from Storyboard

Short question:

How can I launch and make a UITabBarController be the rootViewController of my app after starting with a Storyboard?

Long question:

I'm not a swift expert, but I managed to create a complete app using XIBs from the beginning. Now I need my app to start with a Storyboard as a new requirement to post updates to the appstore from 01/07/2020, but I never used it to build my views. It was easy to modify my app to have my Storyboard as an entry point, but the problem is that my initial view today is a TabController, and I don't know how to navigate from my initial Storyboard to my TabController.

My AppDelegate today works something like this:

var window: UIWindow?

func application(_application: UIApplication, didFinishLauchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    self.window = UIWindow(frame: UIScreen.main.bounds)
    // initiate UINavigationControllers and UITabBarController here...

    tabController.viewController = [nav1, nav2, nav3, nav4]
    tabController.modalPresentationStyle = .fullScreen
    self.window!.rootViewController = tabController
    self.window!.makeKeyAndVisible()

}

All my attempts ended with a white screen after showing my Storyboard without showing my TabBar.

One of these attempts was this:

override func loadView() {
    super.loadView()
    // initiate tabController the same way I did in the AppDelegate
    UIApplication.shared.keyWindow?.rootViewController = tabController
}

在此处输入图像描述

Check the value "Is initial View Controller" for it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM