Ios – Programmatically setting tabBarItem title in Swift

iosswiftuitabbarcontroller

I have four UIViewControllers that are linked to a UITabBarController's tab bar. I need to set the tab bar item titles outside of the storyboard, and inside of their classes.

I've tried..

class MyViewController: UIViewController {

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        self.title = NSLocalizedString(MyConstants.StringKeys.TabName, tableName: Constants.Strings.MyTable, comment: Constants.EmptyString);
    }
}

This is called, but the title is never set. Same with self.tabBarItem.title = "the title"

I've also tried setting the title in viewDidLoad, but that only updates the title after going to the view controller.

Thoughts?

Best Answer

You can set the tab titles in the view controllers themselves in viewDidLoad by setting the view controller's title property.

title = "Number 0"

Alternatively, if want to set the titles from your tab bar controller, you can set them like this in your tab bar controller's viewDidLoad:

tabBar.items?[0].title = "Number 0"
tabBar.items?[1].title = "Number 1"
Related Topic