2010-06-01 3 views
0

Je rencontre un problème avec mon application. D'une part, lorsque mon application est lancée, la première vue affichée est une tableview dans un tableviewcontroller. Par contre, mon application appelle un service Web pour collecter des données. Par contre, mon application appelle un service Web. Ces méthodes sont dans MyAppDelegate \ applicationDidFinishLaunching. Le fait est que ma tableview est faite de cellules personnalisées qui ont besoin de données du service Web.chargement des données - lancement de l'application sur tableview

J'ai remarqué que la vue (avec la vue de table) est lancée en premier, puis MyAppDelegate \ applicationDidFinishLaunchin est exécutée. En conséquence, les étiquettes de mes cellules personnalisées sont toutes égales à null car mes tableaux ne sont pas encore remplis par le service Web.

Je voudrais savoir la bonne façon de le faire.

Si quelqu'un a une idée s'il vous plaît dites-moi.

Wallou

Répondre

1

Utilisez NSNotificationCenter pour communiquer à votre UITableViewController qu'il doit reloadData pour la table.

Pour vous inscrire (dans votre UITableViewController.viewDidLoad):

[[NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(dataLoaded:) 
    name:@"myapp.dataloaded" object:nil]; 

- (void)dataLoaded:(NSNotification *)notification 
{ 
    [self.table reloadData]; 
} 

Pour publier des notifications (après avoir chargé les données):

[[NSNotificationCenter defaultCenter] 
    postNotificationName:@"myapp.dataloaded" object:nil]; 
+0

thx pour la réponse. c'est ma première application iphone. J'ai lu plusieurs fois le NSNOtificationCenter mais je n'ai jamais eu besoin de l'utiliser. Pouvez-vous m'aider un peu à l'implémenter dans mon code? Je suis un peu perdu (c'est-à-dire où faire quoi?) encore – wallou

+0

OK - maintenez sur un sec :) – willcodejavaforfood

+0

Mis à jour ma réponse avec le code qui pourrait fonctionner :) – willcodejavaforfood

Questions connexes