Search code examples
iosswiftuinavigationcontrolleruitabbarcontroller

Initialize tabbarcontroller from scenedelgate.swift


I have changed my initial ViewController using scenedelegate.swift. Now I want to initialize tabbar controller from scenedelegate.swift.

    guard let winScene = (scene as? UIWindowScene) else { return }
    window = UIWindow(windowScene: winScene)
    let storyboard = UIStoryboard(name: "Home", bundle: nil)
    let initialViewController = storyboard.instantiateViewController(identifier: "Home")
    let navController = UINavigationController(rootViewController: initialViewController)
    window?.rootViewController = navController
    window?.makeKeyAndVisible()

Home.storyboard


Solution

  • Create a UITabBarController subclass and assign it to a TabBar controller with a storyboard identifier. And then,

     guard let winScene = (scene as? UIWindowScene) else { return }
        window = UIWindow(windowScene: winScene)
        let storyboard = UIStoryboard(name: "Home", bundle: nil)
        let initialViewController = storyboard.instantiateViewController(identifier: "TabBarController")
        let navController = UINavigationController(rootViewController: initialViewController)
        window?.rootViewController = navController
        window?.makeKeyAndVisible()