[Swift5] UITabBarController à code uniquement

Main.storyboard est censé être supprimé.

Tout d'abord, créez une classe qui hérite de UITabBarController. Ici "TabController"

class TabController: UITabBarController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        var viewControllers = [UIViewController]()
        
        let firstViewController = FirstViewController()
        firstViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .mostRecent, tag: 1)
        viewControllers.append(firstViewController)
        
        let seccondViewController = SeccondViewController()
        seccondViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .mostRecent, tag: 2)
        viewControllers.append(seccondViewController)
        
        let thirdViewController = ThirdViewController()
        thirdViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .mostRecent, tag: 3)
        viewControllers.append(thirdViewController)
        
        self.setViewControllers(viewControllers, animated: false)
        self.selectedIndex = 1
    }
}

Ensuite, définissez TabController sur l'écran initial avec SceneDelegate.

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let _ = (scene as? UIWindowScene) else { return }
        
        guard let windowScene = (scene as? UIWindowScene) else { return }
        let window = UIWindow(windowScene: windowScene)
        self.window = window
        
        window.rootViewController = TabController()
        window.makeKeyAndVisible()
    }

Après cela, personnalisez FirstVC, SeccondVC, ThirdVC comme vous le souhaitez.

Recommended Posts

[Swift5] UITabBarController à code uniquement