Search code examples
iosswiftuitabbarswift2

Change UITabBar selectedItem in Swift


How can I programmatically change the selected item in a UITabBar?


Solution

  • Swift 3 and later

    As of Swift 3, you can also use

    tabBarController.selectedIndex = 0 // (or any other existing index)
    

    (Thank you, @nidomiro.)


    Swift 2.2 and earlier

    Try the following

    tabBar.selectedItem = tabBar.items![newIndex] as! UITabBarItem
    

    Assuming you have access to the UITabBarController that owns the UITabBar, you can do the following

    self.selectedViewController = self.viewControllers![newIndex] as! UIViewController
    

    The above line of code should be put somewhere inside of the UITabBarController subclass.

    But if you have access to the tab bar controller from "outside," do the following

    tabBarController.selectedViewController = tabBarController.viewControllers![newIndex] as! UIViewController