2009-03-27 4 views
8

J'ai un moyen de cacher le bouton de retour utilisé par le contrôleur de navigation. Il est défini par le contrôleur précédent, pas par celui gérant la vue actuelle, ce qui rend l'accès difficile. J'avais besoin de le faire en mode d'édition afin que je puisse empêcher l'utilisateur de naviguer loin de l'écran.Existe-t-il un meilleur moyen de cacher le backBarButtonItem que cela?

if(self.editing) { 
    // Get rid of the back button 
    UIView *emptyView = [[UIView alloc] init];; 
    UIBarButtonItem *emptyButton = [[[UIBarButtonItem alloc] initWithCustomView:emptyView] autorelease]; 
    [self.navigationItem setLeftBarButtonItem:emptyButton animated:YES]; 
} else { 
    // Restore the back button 
    [self.navigationItem setLeftBarButtonItem:nil animated:YES];   
} 

Y a-t-il une meilleure façon de procéder?

Répondre

44

Utilisez cette option pour cacher les dossiers bouton

[self.navigationItem setHidesBackButton:YES] 

Utilisez cette option pour afficher le bouton Retour

[self.navigationItem setHidesBackButton:NO] 
+2

Ça marche, merci. Il y a une petite différence - pas d'animation. J'ai résolu cela avec ces versions: [self.navigationItem setHidesBackButton: OUI animé: OUI]; [self.navigationItem setHidesBackButton: NON animé: OUI]; –

+0

Assurez-vous de placer ce code dans le ViewController à l'endroit où vous voulez que le bouton soit caché - pas le contrôleur précédent (dont la question d'origine était requise). –

1

Voici la méthode que je l'utilise dans mon contrôleur de vue pour afficher et masquer le bouton de retour lors de l'édition est activée et désactivé:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated 
{ 
    if (editing) { 
     // Disable the back button 
     [self.navigationItem setHidesBackButton:YES animated:YES]; 
    } 
    else { 
     // Enable the back button 
     [self.navigationItem setHidesBackButton:NO animated:YES]; 
    } 

    [super setEditing:editing animated:animated]; 
} 
0

Faire une sortie avec fort (pas faible par défaut) du b bouton ar du storyboard à votre contrôleur de vue. Le but n'est pas de perdre la référence lorsque vous placez le bouton de la barre gauche/droite à zéro.

Questions connexes