Question

Je change le titre de l'élément de bouton de retour dans le viewDidAppear d'un contrôleur de la manière suivante:

self.navigationController.navigationBar.backItem.title = @ "Précédent";

Il change le Tittle correctement, mais je vais avoir un comportement étrange. Lorsque je sélectionne le bouton « précédent », il change le titre du contrôleur qui est dans la pile (i.e. le contrôleur parent a maintenant le titre « Précédent ».

Avez-vous maintenant pourquoi cela est arrivé?

Était-ce utile?

La solution

Lorsque vous utilisez un contrôleur de navigation, appelant [auto setTitle: @ "Titre"]; à l'intérieur d'un contrôleur de vue dans la pile va définir le titre de la barre de navigation. Ceci est également le titre utilisé par défaut pour le bouton quand vous avez poussé un nouveau contrôleur de vue. Apparemment, d'après ce que vous rencontrez, définissant explicitement le titre de la backItem, elle fixe également pour le titre de la barre de navigation pour le contrôleur de vue précédent surchargeant tout ce que spécifié dans l'appel à -setTitle dans le contrôleur de vue.

Vous serez probablement mieux gérer juste le titre de l'intérieur des contrôleurs de vue dans votre pile de navigation. Quand vous allez à pousser un nouveau contrôleur de vue, procédez comme suit:

[self setTitle:@"Previous"];
NextViewController *controller = [[NextViewController alloc] init];
[[self navigationController] pushViewController:controller animated:YES];
[controller release], controller = nil;

Maintenant, quand le contrôleur suivant affiche vue, le bouton de retour à dire « Précédent ». Maintenant, il vous suffit de changer de nouveau à quel que soit son vrai titre devrait être en -viewWillAppear:

- (void)viewWillAppear:(BOOL)animated;
{
    [self setTitle:@"Real Title"];
    [super viewWillAppear:animated];
}

Il peut se sentir un peu hacky, mais il vaut mieux que d'essayer de passer outre la fonctionnalité de la barre de navigation. Lutte avec la pile contrôleur barre de navigation / navigation peut se révéler très frustrant.

Meilleures salutations.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top