How to Hide Tab Bar Controller ? I want to hide the Tab Bar controller with double tap on UIImageView.
Objective-C
[self.tabBarController.tabBar setHidden:YES];
Swift 3
self.tabBarController?.tabBar.isHidden = true
Swift 2
self.tabBarController?.tabBar.hidden = true
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.
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.
UIViewController has a property
@property(nonatomic, readonly, retain) UITabBarController *tabBarController
which you can set:
self.tabBarController.tabBar.hidden = YES;
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()
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