I have a storyboard like this
-> NavigationController -> LoginView -> TabBarController -> VC1 -> VC2
I didn't manage to make a "move" from VC1 to VC2 keeping the tab bar.
I tried the followings :
Segue (Show type)
self.performSegueWithIdentifier("toVC2segue", sender: self)
instantiate programmaticaly :
// prepare for future display
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let navigationVC = UIApplication.sharedApplication().keyWindow?.rootViewController as! UINavigationController
// prepare next view
let vc = storyboard.instantiateViewControllerWithIdentifier("VC2id")
self.tabBarController?.navigationController?.pushViewController(vc, animated: true)
but both make the tab bar disappearing.
I tried also
self.hidesBottomBarWhenPushed = false
but this didn't change anything.
Do you have another idea ?
PS : I updated my scheme above...
Edit : After reading the answers below, I tried to add another navigation controller :
-> NavigationController -> LoginView -> TabBarController -> NavigationController -> VC1 -> VC2
but I have now 2 navigation bars superposed in VC1 and VC2...
You need to set TabBarContoller as rootViewController of the app. So scheme should be as follow:
TabBarContoller -> Tab1 -> UINavigationController -> ViewContoller1 -> ViewContoller2.
In such case you can navigate between ViewContoller1 and ViewContoller2 and TabBarContoller will remain visible.
Your view hierarchy should not look like this if you want to keep the tabBar.
-> NavigationController -> TabBarController -> VC1 -> VC2
You should change it to -> TabBarController -> NavigationController -> VC1 -> VC2
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With