2010-12-19 4 views
1

J'ai implémenté un contrôleur de vue basé sur la navigation avec plusieurs vues et un modèle.Tabbar avec les mêmes contrôleurs de navigation

Maintenant, j'ajoute mon contrôleur de navigation à la barre d'outils via le constructeur d'interface. (juste traîné tout le tas dedans). Ça a marché, j'ai un nouvel onglet avec tous mes points de vue.

Mais maintenant je veux ajouter exactement le même contrôleur de vue de navigation à un autre onglet. Je peux aussi faire cela, le problème est, quand je p. supprimer une entrée dans ma vue de table, l'entrée est toujours visible dans l'autre onglet.

Donc ce dont j'ai besoin d'un moyen de mettre à jour mon modèle lorsque je change les onglets.

Mise à jour:

J'ai ajouté le addObserver dans mon RootViewController contenant la vue de la table. Je l'ai placé dans "view did load", le postNotification dans ma méthode de suppression. Aucune erreur de compilation, mais les tables ne se mettent pas à jour les unes les autres.

J'ai téléchargé mon projet, vous pourriez peut-être un coup d'oeil ?:

http://www.perry-paul.de/unternehmenf.zip

Répondre

2

Une façon de le faire est à l'aide NSNotifications.

Lorsque vous chargez votre contrôleur de vue contenant le tableView, inscrivez-vous tableView pour les notifications en utilisant

[[NSNotificationCenter defaultCenter] addObserver:self.tableView selector:@selector(reloadData) name:@"ModelUpdated" object:nil];

De cette façon [self.tableView reloadData] sera appelé à chaque fois que vous publiez la notification « ModelUpdated ». Ainsi, lorsque vous supprimez une entrée, envoyer la notification à l'aide

[[NSNotificationCenter defaultCenter] postNotificationName:@"ModelUpdated" nil];

Enfin, ne pas oublier de retirer la notification (généralement viewDidUnload):

[[NSNotificationCenter defaultCenter] removeObserver:self name:"ModelUpdated" object:nil];

Plus d'info sur NSNotifications dans cette question: What is NSNotification?

+0

Hy, merci pour votre réponse rapide. – Subseven

Questions connexes