58 votes

Comment masquer/afficher la barre d'onglets d'une vue avec une barre de navigation dans iOS ?

J'ai des vues avec une barre de navigation et une barre d'onglets. Je voudrais masquer la barre d'onglets dans une certaine vue et la réafficher lorsque l'utilisateur change de vue.

J'ai vu un bout de code pour cacher la barre d'onglets :

-(void)makeTabBarHidden:(BOOL)hide
{
    // Custom code to hide TabBar
    if ( [tabBarController.view.subviews count] < 2 ) {
        return;
    }

    UIView *contentView;

    if ( [[tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] ) {
        contentView = [tabBarController.view.subviews objectAtIndex:1];
    } else {
        contentView = [tabBarController.view.subviews objectAtIndex:0];
    }

    if (hide) {
        contentView.frame = tabBarController.view.bounds;       
    }
    else {
        contentView.frame = CGRectMake(tabBarController.view.bounds.origin.x,
             tabBarController.view.bounds.origin.y,
             tabBarController.view.bounds.size.width,
             tabBarController.view.bounds.size.height - tabBarController.tabBar.frame.size.height);
    }

    tabBarController.tabBar.hidden = hide;
}

de : http://nickwaynik.com/iphone/hide-tabbar-in-an-ios-app/

J'appelle ceci sur la vue dans laquelle je veux que la barre d'onglets soit cachée.

[self makeTabBarHidden:YES];

cela fonctionne bien lorsque je l'affiche/masque sur cette vue mais lorsque je retourne à la vue précédente, la barre d'onglets est également masquée. J'ai essayé d'appeler cette fonction dans la vue viewDidUnload , viewWillDisappear , viewDidDisappear mais rien ne se passe. Il en va de même lorsque la fonction est appelée dans la vue précédente. viewDidLoad , viewWillAppear , viewDidAppear fonctions.

2voto

alicanozkara Points 1908

Essayez ceci pour cacher / montrer :

- (void)viewWillDisappear:(BOOL)animated {
    self.hidesBottomBarWhenPushed = NO;
}

- (void)viewWillAppear:(BOOL)animated {
    self.hidesBottomBarWhenPushed = YES;
}

0voto

ShowPony Points 31

La même propriété est disponible dans l'inspecteur d'attributs lorsque vous cliquez sur votre contrôleur de vue dans votre fichier Xib ou storyboard.

0voto

Soropromo Points 136

Vous pouvez utiliser le code ci-dessous mais tabBar reste caché lorsque vous retournez à la navigation.

    //hide tabbar
    //self.tabBarController?.tabBar.isHidden = true

meilleur moyen est à faire à travers main.storyboard vérifier "Hide Bottom Bar on Push" comme je l'ai fait.

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X