Reputation: 375
I want to use a segmented control inside a tab of a UITabBarController on iOS. It seems to work without it, but as soon as I embed it in a TabBarController, the segmented control won't show up in the navigation bar.
Am I missing something or is it just not supported because of some UI-guidelines? I haven't found anything in the Apple Design Guidelines...
But in this setup, the segmented control does not show up:
Upvotes: 0
Views: 340
Reputation: 1337
First question is: What are you trying to achieve - what interface do you want to provide?
It is very uncommon to have a tab bar controller embedded in a navigation controller. A tab bar controller is meant to be used as main app navigation. You can find it in so many Apple Apps (Music, Phone etc.)
These Apps have a tab bar controller with multiple navigation controllers. For example your first tab is a navigation controller with a normal view controller as root.
In this controller you then can set you segmented control.
Apple describes this behavior in it's Combined View Controller Interfaces Documentation (https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/CombiningViewControllers.html#//apple_ref/doc/uid/TP40011313-CH6-SW1).
Update
@kaushal answer solves your problem ... yes. But if you will try to style the navigation bar for every view controller contained in your tab view controller (maybe you want to add a button as rightBarButtonItem
only for one view controller) this won't work.
If you want a segmented control on every controller of the tab view controller just isolate the code for this control and reuse it in every controller.
This would achieve the same effect but you would have a cleaner software design.
Upvotes: 3
Reputation: 1573
Navigation bar is common throwout the stack, It will load once. And it was empty for first view. If you want it customisable for particular VC then you have to do it programatically by accessing self.NavigationBar in view did load method.
Upvotes: 0