How to Hide Tab Bar Controller ? I want to hide the Tab Bar controller with double tap on UIImageView.
-
try this answer http://stackoverflow.com/a/36148064/3078925 – Beslan Tularov Mar 22 '16 at 07:12
10 Answers
Try this code:
[self.tabBarController.tabBar setHidden:YES];
where tabbarcontroller is needed to be defined...
EDIT
AppDelegateFileName *appDelegate = (AppDelegateFileName *) [[UIApplication sharedApplication] delegate];
[appDelegate.tabbarController.tabBar setHidden:YES];
before doing this make sure that you create a @property declaration of tabbarController
in appDelegate .h file.
-
-
`UITabbarController *tabbarController;` in .h file and just give `IBOUTLET` in .xib file... – DShah Sep 19 '11 at 06:19
-
i declare tabbar controller in app delegate .... how can i use in myviewcontroller. – Gaurav Patel Sep 20 '11 at 04:22
If using Storyboards you can simply uncheck a checkbox in your ViewController's Attribute Inspector. It's called "Hide Bottom Bar on Push". Very convenient indeed, and no need to handle the showing of the tabBar again after navigating back from your tabBar-less viewController. I don't know in which XCode-version this was introduced, but it's there for XCode 6 + .

- 561
- 6
- 14
Use Tap Gesture Recognizer to detect double taps on a UIImageView
. Then invoke a method on detecting the double double tap. Add the following line of code in that method.
self.tabBarController.tabBar.hidden=YES;
Hope this helps.
-
-
what do u mean by call tabbar controller in this view ? Could u pls explain more on that ? – stack2012 Sep 19 '11 at 06:03
-
3
-
1@GajendraKChauhan add this line after setting it to hidden: self.edgesForExtendedLayout = UIRectEdgeAll; – Sam Bellerose Nov 18 '15 at 16:36
Use the code below to hide/show tab bar controller in animated style.
hiddenTabBar
is a BOOL
variable.
- (void) hidetabbar {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.0];
for(UIView *view in objtabbar.view.subviews)
{
if([view isKindOfClass:[UITabBar class]])
{
if (hiddenTabBar) {
[view setFrame:CGRectMake(view.frame.origin.x, 431, view.frame.size.width, view.frame.size.height)];
} else {
[view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)];
}
} else {
if (hiddenTabBar) {
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431)];
} else {
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)];
}
}
}
[UIView commitAnimations];
hiddenTabBar = !hiddenTabBar;
}
UIViewController has a property
@property(nonatomic, readonly, retain) UITabBarController *tabBarController
which you can set:
self.tabBarController.tabBar.hidden = YES;

- 361
- 4
- 12
Swift 2.1:
self.tabBarController!.tabBar.hidden = true

- 9,564
- 146
- 81
- 122

- 769
- 6
- 9
Objective-C
[self.tabBarController.tabBar setHidden:YES];
Swift 3
self.tabBarController?.tabBar.isHidden = true
Swift 2
self.tabBarController?.tabBar.hidden = true

- 2,979
- 1
- 29
- 34
Objective-C
[self.tabBarController.tabBar setHidden:YES];
Objective-C 2.0
self.tabBarController.tabBar.hidden = YES;
Swift before iOS 9
tabBarController?.tabBar.hidden = true
Swift iOS 9 and above
tabBarController?.tabBar.isHidden = true
Extra trick with Swift 5 and above: if you would like to change the hidden property then toggle it
if let t = tabBarController?.tabBar {
t.isHidden = t.!isHidden
}
// is equal to
tabBarController?.tabBar.isHidden.toggle()

- 8,936
- 7
- 53
- 93
Swift Solution for multiple root view controllers
If you or someone would need to hide the tab bar inside a custom controller, for an app that uses multiple rootViewController
try something like this:
//instantiate appDelegate in your controller first
let appDelegate = UIApplication.shared.delegate as! AppDelegate
//then just hide the tab bar as following
appDelegate.window?.rootViewController?.tabBarController?.tabBar.isHidden = true

- 406
- 6
- 24