Comment masquer le contrôleur de la barre d'onglets? Je souhaite masquer le contrôleur de la barre d'onglets en tapotant deux fois sur UIImageView.
Essayez ce code:
[self.tabBarController.tabBar setHidden:YES];
où tabbarcontroller doit être défini ...
MODIFIER
AppDelegateFileName *appDelegate = (AppDelegateFileName *) [[UIApplication sharedApplication] delegate];
[appDelegate.tabbarController.tabBar setHidden:YES];
avant de faire cela, assurez-vous de créer une déclaration @property de tabbarController
dans le fichier appDelegate .h.
Si vous utilisez des Storyboards, vous pouvez simplement décocher une case dans l'inspecteur des attributs de votre ViewController. C'est ce qu'on appelle "Masquer la barre inférieure sur Push". Très pratique, et nul besoin de gérer à nouveau l'affichage de la barre de tabulation après la navigation dans votre viewController sans tabBar. Je ne sais pas dans quelle version XCode cela a été introduit, mais c'est là pour XCode 6 +.
Utilisez TapGesture Recognizer pour détecter les doubles appuis sur UIIMageview. Invoquez ensuite une méthode de détection de la double frappe double. Ajoutez la ligne de code suivante dans cette méthode.
self.tabBarController.tabBar.hidden=YES;
J'espère que cela t'aides.
Utilisez le code ci-dessous pour masquer/afficher le contrôleur de barre d’onglet dans un style animé.hiddenTabBar
est une variable BOOL
.
- (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;
}
Swift 2.1:
self.tabBarController!.tabBar.hidden = true
UIViewController a une propriété
@property(nonatomic, readonly, retain) UITabBarController *tabBarController
que vous pouvez définir:
self.tabBarController.tabBar.hidden = YES;
Si vous voulez changer d'animation, vous pouvez utiliser ce code:
extension UITabBarController {
func set(visible: Bool, animated: Bool, completion: ((Bool)->Void)? = nil ) {
guard isVisible() != visible else {
completion?(true)
return
}
let offsetY = tabBar.frame.size.height
let duration = (animated ? 0.3 : 0.0)
let beginTransform:CGAffineTransform
let endTransform:CGAffineTransform
if visible {
beginTransform = CGAffineTransform(translationX: 0, y: offsetY)
endTransform = CGAffineTransform.identity
} else {
beginTransform = CGAffineTransform.identity
endTransform = CGAffineTransform(translationX: 0, y: offsetY)
}
tabBar.transform = beginTransform
if visible {
tabBar.isHidden = false
}
UIView.animate(withDuration: duration, animations: {
self.tabBar.transform = endTransform
}, completion: { compete in
completion?(compete)
if !visible {
self.tabBar.isHidden = true
}
})
}
func isVisible() -> Bool {
return !tabBar.isHidden
}
}
Plus vous pouvez lire dans https://stackoverflow.com/a/50101262/1797194
Objectif c
[self.tabBarController.tabBar setHidden:YES];
Swift 3
self.tabBarController?.tabBar.isHidden = true
Swift 2
self.tabBarController?.tabBar.hidden = true
Essayez ceci en poussant la vue vers la nouvelle vue:
self.tabbarconroller.tabbar.hidden = YES;