derdida derdida - 4 months ago 14x
Swift Question

Programmatically change tabBar item?

I would like to change a

TabBar Item
, when a User is logged in or not.

For example: i have 5 different tabBar items, all created an Storyboard.

Now i want to change the tarBar with index 2 (or tag == 2) when i user has no account. I would like to load a different rootViewController. The rootViewController is not already an item of my TabBar, i would load a totally different Controller.

What is the best way to do this? I can simple change the icon with:

self.tabBar.items![0].selectedImage = UIImage(named: "icon_cal_grey")

But how to i change the rootViewController?

Should i do it here?

override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {

if item.tag == 1 {
// ?


Or should ill create a UINavigationController as RootViewController, and load here the "correct" ViewController as RootViewController?


Check if user is logged in and then change view controllers of UITabBarController:


Also this may help Set view controllers of UITabBarController in Swift