Question

J'ai une vue table, avec une longue liste de chaînes.Il y a des en-têtes pour chaque section, un index sur le côté droit et un bouton de recherche.Cela a été implémenté par programme, à l'aide d'un UISearchDisplayController (c'est-à-direpas en IB).

Lorsque le bouton de recherche est activé, je cache les en-têtes (dans titleForHeaderInSection), et masquer l'index (dans sectionIndexTitlesForTableView), en demandant
if ([self.searchDisplayController isActive])

Le problème est que lorsque l’on clique sur le bouton Annuler, les en-têtes et l’index restent masqués au début.J'ai essayé (dans searchBarCancelButtonClicked) appeler [self.tableView reloadData], mais ça ne marche pas.

j'ai un [self.tableView reloadData] dans mon viewWillAppear, ce qui aide d'une manière :si je sélectionne une ligne, place une autre vue sur la pile, puis reviens à cette table, les en-têtes et l'index sont là comme souhaité.

Qu'est-ce que je pourrais faire de mal ?

Était-ce utile?

La solution

J'ai constaté que parfois, lorsque [tableView reloadData] ne fonctionne pas, cela :

[tableView performSelector:@selector(reloadData) withObject:nil afterDelay:0];

Pour une raison quelconque, la vue table se retrouve parfois dans un état tel qu'elle doit attendre la prochaine itération de la boucle d'exécution avant que le rechargement ne soit effectif.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top