2010-04-13 11 views
1

J'ai une application avec un TabBar qui contrôle plusieurs vues. Dans une vue, je contrôle les connexions à différents serveurs. Chaque serveur fournit un ensemble d'éléments différent. J'affiche ces éléments dans UITableView sur un autre affichage. Le problème est que la vue de table affiche OK la première fois mais si je retourne voir le numéro un et change le serveur, changeant ainsi la liste d'articles qui devraient être montrés dans la vue de table, la vue de table devient invisible pour une raison quelconque. Si je tape sur l'écran à l'endroit où il devrait être, il redevient visible.iPhone: UITableView devient invisible après avoir modifié les données qu'il affiche

Je Créer une vue de table comme celui-ci

UITableView * aTableView = [[UITableView alloc] initWithFrame:CGRectMake(X,Y,Width,Height) style:UITableViewStyleGrouped]; 

    [[self view] addSubview:aTableView]; 

    aTableView.dataSource = self; 

Ive a essayé d'appeler reloadData et setNeedsDisplay dans viewWillAppear du UIViewController qui héberge cette tableview mais sans succès.

Un conseil?

Merci

+0

Pourriez-vous poster un peu plus de code afin que nous puissions obtenir le contexte? – Tomen

Répondre

0

Je ne sais pas qu'il va résoudre votre problème ou non, mais vous manque

aTableView.delegate = self; 

ou ne vous ai pas coller ici

0

Je suppose que le problème est que la source de données de tableview ne fournit pas les données les premières rechargements de la table après le changement de serveurs. Si la source de données ne fournit aucune ligne, la vue de table apparaît complètement vide. Cela ressemble à votre problème.

Je regarde le code dans lequel vous changez de serveurs ainsi que le tableview:cellForRowAtIndexPath: Définissez un point d'arrêt/journal à activer après avoir changé de serveur et voir quelles données la source de données fournit immédiatement après le changement de serveur. Je pense que vous trouverez la table n'a pas de données. Lorsque vous le touchez, la table force une mise à jour et à ce moment-là, les données sont arrivées.