UINavigationBar titre et un bouton de droite

J'ai une manette de navigation et un affichage de contrôleur:

-NavigationController1
--MyViewController

Et ainsi j'ai une autre manette de navigation - NavigationController2.
Je veux l'appeler MyViewController à partir d'un autre point de vue, contrôleur ViewController2, qui a été poussé dans NavigationController2.
-NavigationController2
--ViewController2

Je le fais de la manière suivante:

@implementation ModifyDicVController

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    self.navigationItem.rightBarButtonItem = [ [ [UIBarButtonItem alloc]
                    initWithBarButtonSystemItem:
                    UIBarButtonSystemItemAdd target:self
                    action:@selector(add_clicked)] autorelease];

}


-(void) add_clicked
{
    [navigationController pushViewController: addWordsVController animated: YES];
}

@end

Et voici le viewWillAppear méthode de MyViewController(celui qui est appelé):

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

Je suis l'ajout d'un bouton "terminé" pour la Barre de Navigation lorsque l'utilisateur commence à modifier un champ de texte:

- (void) textFieldDidBeginEditing: (UITextField *) textField
{ 
    self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] 
                initWithTitle: NSLocalizedString(@"button: done", @"")
                style:UIBarButtonItemStyleDone 
                target:self 
                action:@selector(doneEditing)] 
                autorelease];
}

Le problème est: si j'appelle MyViewController de ViewController2 qui a été poussé dans NavigationController2 et après que j'appelle MyViewController à partir de ses propres NavigationController1, le titre d'une barre de navigation et un bouton n'est pas ajouté. Cependant viewWillAppear et textFieldDidBeginEditing méthodes de MyViewController sont appelés.

Quel est le problème et comment puis-je résoudre ce problème?

Grâce.

  • Pouvez-vous expliquer la hiérarchie de la valeur liquidative des contrôleurs plus en détail?
  • C'est une application similaire à un carnet d'adresses. J'ai un onglet de la barre à partir de laquelle je peux choisir un carnet d'adresses à modifier(j'ai plusieurs livres) et ainsi je peux choisir un onglet d'où je peux ajouter un nouveau contact dans un carnet d'adresses actif. Deux onglets sont manettes de navigation. Et il est également possible d'ajouter un nouveau contact dans un carnet d'adresses en allant dans le premier onglet, sélectionner un carnet d'adresses pour le modifier et y ajouter de nouveaux contacts.