2010-07-26 4 views
0

J'ai des données en cours d'actualisation dans un modalViewController et lorsque ces données sont actualisées, le contrôleur parent doit également actualiser ses données. J'ai essayé de faire un [tableView reloadData]; mais cela n'a pas fonctionné correctement puisque les valeurs de tableau réelles ne sont pas actualisées. Existe-t-il un moyen de recharger un contrôleur sans que l'utilisateur ne voie d'animation?Comment "actualiser" UIView

Merci pour toute aide!

Répondre

1

Etes-vous en train d'actualiser les données du thread principal? Si oui, vous devez appeler la méthode reloadData selon la méthode suivante:

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

Donc, pour un tableView ce serait quelque chose comme:

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

0

La vue sous-jacente peut être libérée lorsque la vue modale est affichée, vous ne devriez donc pas essayer de la modifier directement. Au lieu de cela, vous pouvez utiliser la méthode viewWillAppear: sur le contrôleur de la vue principale pour effectuer les mises à jour nécessaires.

Je ne suis pas sûr de savoir ce que vous voulez dire que "les valeurs réelles du tableau ne sont pas actualisées". La manière dont les deux contrôleurs de vue échangent des données dépend beaucoup de ce que vous essayez d'accomplir. Si la vue modale n'est utilisée qu'à un endroit, le contrôleur principal peut accéder directement à ses propriétés. Ou peut-être que vous voulez une classe dédiée pour tenir l'état ... Encore une fois, dépend du contexte.