Question

J'ai un contrôleur de navigation et un contrôleur de vue:

-NavigationController1
--MyViewController

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

Je 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 la méthode viewWillAppear de MyViewController (celui qui est appelé):

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

Je suis ajout d'un bouton « fait » à la barre de navigation lorsque l'utilisateur commence à modifier un champ 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 le suivant: si je l'appelle MyViewController de ViewController2 qui a été poussé dans NavigationController2 et après que j'appelle MyViewController de sa propre NavigationController1, le titre d'une barre de navigation et un bouton fait ne sont pas ajoutés. Cependant, les méthodes viewWillAppear et textFieldDidBeginEditing de MyViewController sont appelés.

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

Merci.

Était-ce utile?

La solution

Votre question est un peu déroutant.

I « pense » que vous dites que vous rencontrez des problèmes de communication entre les contrôleurs de vue.

Si tel est le cas, la vraie question est que vos contrôleurs de vue doivent pas communiquer entre eux. Ils, au lieu devraient être stockaient état dans un modèle.

Si vous faites cela, vous aurez aucun problème. Envisager d'avoir un singleton de modèle pour enregistrer les informations qui se perdre.

Si j'ai mal compris votre question, s'il vous plaît laissez-moi savoir.

Autres conseils

Pour modifier l'utilisation de titres à l'unité de commande d'affichage qui est actuellement sur le dessus de la pile (active).

self.navigationItem.title=@"the title";
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top