0

Je suis en train de développer une application graphique qui, dans la vue principale de navigation/onglets, affiche un UIView qui rend un graphique en utilisant openGL. Sous cette vue se trouve un UITableView qui affiche la liste des éléments sur le graphique, et un bouton Ajouter. De temps en temps, lorsque l'utilisateur clique sur un autre onglet, puis revient à l'onglet de la représentation graphique, la vue de table n'est pas redessinée.UITableView cellForRowAtIndexPath parfois pas appelé?

J'ai une méthode [tableView reloadData] appelée dans la méthode viewDidAppear des contrôleurs de navigation (également le délégué et la source de données de la vue de table).

numberOfSectionsInTableView et numberOfRowsInSection sont appelés, mais cellForRowAtIndexPath ne le fait pas, bien que les deux dernières méthodes retournent des valeurs positives.

Il s'agit d'un problème intermittant, qui se produit seulement de temps en temps, mais on ne sait pas ce qui (si quelque chose) influence cela.

Quelqu'un a-t-il des idées?

[modifier] Devrait juste ajouter rapidement; En cliquant ou en interagissant avec la vue de la table, qu'elle soit défectueuse ou non, TOUJOURS la fait redessiner avec succès.

[Et encore] Un peu plus d'informations; quand il est défectueux comme décrit, et appelle les deux premiers mais pas la méthode cellforRowetc, il semble attendre que l'utilisateur interagisse avec la table avant que cellForRowetc soit finalement appelé (les deux premières méthodes ne sont pas appelées) et est redessiné.

Répondre

0

J'avais un UIActivityIndicator, démarré sur un thread distinct, qui indiquait quand des requêtes étaient faites à un service web. Lorsque les appels de service Web ont été terminés, une notification a été envoyée à la classe de contrôleur de graphique pour arrêter et masquer le UIActivityIndicator. Dans cette méthode, reloadData était appelé sur la table, que la vue soit visible ou non, ce qui semblait être à l'origine du problème.

La conclusion semble être de ne pas appeler reloadData sur une table sauf si elle est visible.

Questions connexes