Swift 2.2 How to change background color of tab bar controller

Xcode 9

Storyboard

It possible to set background color directly in view controller (currently in TabBarViewController), for this you need to define Key Path. Don't forget to remove background color on nested view, otherwise it will overlap superview's background color.

enter image description here


This is a fine way to change the color of a UITabBar. If you want to avoid setting the color in every viewController that is embedded inside of your UITabBarController, you could also create a subclass of UITabBarController and set it there. This way no matter what page comes up first, the color will be set.

To create a subclass of UITabBarController, just go to file > new > file > cocoa touch class...Then setup your file like in this photo

Add File

Now in your storyboard, set the custom class on your tabBarController

Storyboard

Finally, in your file you created MyTabBarController (or whatever you called it):

class MyTabBarController: UITabBarController {

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    self.tabBar.barTintColor = .blueColor()
}
...