web-dev-qa-db-fra.com

Comment recharger une UITableView pendant que je la regarde

Lorsque j'ai un UITableView dans le cadre du contrôleur de vue visible, comment puis-je le recharger pour que les données que je regarde changent pour les nouvelles données. Le simple fait d'appeler reload ne semble pas actualiser les données tant que je ne les ai pas faites défiler.

30
Genericrich

L'appel de la méthode reloadData rafraîchit les données dès que la méthode est appelée. Il n'attend pas que la table défile. Assurez-vous que la source de données (tableau ou dictionnaire ou partout où vous avez enregistré les valeurs) est modifiée avant d'appeler reloadData.

35
lostInTransit

Actualisez-vous les données du thread principal? Si tel est le cas, vous devez appeler la méthode reloadData à l'aide de la méthode suivante:

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait

Donc pour une tableView ce serait:

[tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

33
xmr

Juste une mise à jour 2013, vous devriez également pouvoir recharger les données, aussi longtemps que vous utilisez

dispatch_async(dispatch_get_main_queue(), ^{
    [self.tableView reloadData];
});

GCD est génial!

20
GangstaGraham