Switch tab bar programmatically in Swift

Azabella picture Azabella · Jan 22, 2015 · Viewed 60.8k times · Source

I have a tab bar application and i have a button on my first view which i want to when pressed switch to my second tab programmatically in the tab bar.

I can't quite seem to figure it out how to get the index etc to switch to it i've tried stuff like this.

tababarController.selectedIndex = 1

With no success.

Answer

Leo Dabus picture Leo Dabus · Jan 22, 2015

Thats pretty simple tabBarController is declared as an optional type

var tabBarController: UITabBarController? { get }

The nearest ancestor in the view controller hierarchy that is a tab bar controller. If the view controller or one of its ancestors is a child of a tab bar controller, this property contains the owning tab bar controller. This property is nil if the view controller is not embedded inside a tab bar controller.

So you just need to add "?" at the end of it:

@IBAction func goToSecond(_ sender: Any) {
    tabBarController?.selectedIndex = 1
}