Trenton Tyler
Trenton Tyler

Reputation: 534

TabBar disappear after Push Segue

This is the current layout for my application. As you can see, I have a ViewController that is embedded in a TabBarViewController. You can see I have two tab bars in both of those bottom view controllers but only the first one shows up. In the second view controller after the push segue, the tab bar disappears. Why is this?

I added the properties for the First view controller and it is not set to hide the bottom bar during the segue so I am confused as to why it would disappear after the segue. Any ideas?

enter image description here

enter image description here

Upvotes: 3

Views: 5969

Answers (3)

James Jerkowski
James Jerkowski

Reputation: 1

You could also try to dismiss the views by adding an outlet/action. For example, I experienced an issue where I had a TabBar view controller and needed to segue between 2 different views (ImageViews) on one of the tabs and as soon as I did a traditional segue, the whole tab bar disappeared. I had created the following "Back button" to clear the view:

@IBAction func backBtnPressed(_ sender: AnyObject) {
     dismiss(animated: true, completion: nil)
  }

Note: It is an important practice to clear views out as they will stack up overtime and will reduce the performance of your app.

Technical Info: https://developer.apple.com/reference/uikit/uiviewcontroller/1621505-dismiss

Not sure if this helps but worth mentioning!

Upvotes: 0

Kyle
Kyle

Reputation: 14666

You'll need to wrap your tabBar's root viewControllers in a UINavigationController. So your UITabBarController would actually be pointed at the Navigation Controller. Then as you move around in that navigation controller, the tab bar will stay in place.

To fix this in your application, select your view controller in storyboard, then click "Editor" -> "Embed In" -> "Navigation Controller".

Here's a visual representation I just threw together for anyone else who comes across this problem. If you remove the "NavigationController" in the storyboard shown below, the tab will disappear when you click the button in "First View". With the navigation controller, you will maintain the tab bar. Hope this helps.

enter image description here

Upvotes: 4

Eugene Gordin
Eugene Gordin

Reputation: 4107

Try set self.tabBarController.tabBar.translucent = NO; in viewWillAppear

Upvotes: 2

Related Questions