2011-02-08 5 views
4

J'ai un UITableView qui charge à partir d'un fichier NIB. Le contrôleur de l'écran est une sous-classe de UIViewController qui est conforme aux protocoles de délégués UITableView. C'est le 2ème écran d'une pile de vues gérée par un UINavigationController. Dans mon vueWillAppear pour la vue incriminée, je cours deux NSFetchRequests et met à jour 2 des 3 sections de ma table avec les résultats de ces requêtes NSFetchRequests. Au bas de viewWillAppear j'appelleComment faire fonctionner reloadData sur UITableView

[self.myTable reloadData]; 

myTable est un IBOutlet au UITableView pour l'écran.

Pour quelque raison que ce soit, la table ne recharge pas les données et aucune des méthodes de délégation de la table n'est appelée lorsque j'y reviens à partir de vues plus profondes dans la hiérarchie du contrôleur de navigation.

Comment puis-je recharger la table?

Merci.

+0

Avez-vous vérifié que myTable n'est pas nul? avez-vous également vérifié que dataSource et delegate de cette table ne sont pas nuls? n'oubliez pas la règle "messages à zéro" de Cocoa! – viggio24

+0

Que se passe-t-il lorsque vous envoyez un message à zéro? – Aaronium112

Répondre

6

Au lieu de self.tableView, utilisez:

[myTable reloadData]; 

Donc, si vous avez défini votre IBOulet comme myTable, alors vous devez utiliser ce nom au lieu.

self.myTable fonctionnerait si vous avez initialisé myTable comme dans votre tête:

self.myTable = [[UITableView alloc] initWithFrame:CGRectZero]; 
+0

Cela a fonctionné. Est-ce que [self.myTable reloadData] et [myTable reloadData] ne sont pas identiques? Est-ce parce que self.myTable appelle les setters et les getters? – Aaronium112

1

Avez-vous également lié la UITableView à la source de données et les prises de délégués dans le fichier nib? Vous devez lier ces deux en plus de l'IBOutlet.

Questions connexes