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.
Vous devez vous connecter pour publier un commentaire.
Votre question est un peu confuse.
Je "pense" que vous dites vous rencontrez des problèmes de communication entre les contrôleurs de vue.
Si c'est le cas, le vrai problème est que votre point de vue les contrôleurs ne doivent PAS communiquer les uns avec les autres. Ils ont, au lieu de stockage de l'etat dans un modèle.
Si vous le faites, alors vous n'aurez pas de problèmes. Envisager d'avoir un modèle singleton pour enregistrer les informations est de s'y perdre.
Si j'ai mal compris votre question, s'il vous plaît laissez-moi savoir.
De changer le titre de l'avis du contrôleur qui est actuellement sur le dessus de la pile (à l'actif).