Pulsante di annullamento UisearchDisplayController non rinfrescanti e indice
-
12-11-2019 - |
Domanda
Ho una vista da tavolo, con un lungo elenco di stringhe. Ci sono intestazioni per ogni sezione, un indice lungo il lato destro e un pulsante di ricerca. Questo è stato implementato a livello di programmazione, usando un UisearchDisplayController, (cioè non in IB).
Quando il pulsante di ricerca è attivato, nascondo le intestazioni (in titleForHeaderInSection
) e nascondere l'indice (in sectionIndexTitlesForTableView
), chiedendo
if ([self.searchDisplayController isActive])
Il problema è che quando si fa clic sul pulsante Annulla, le intestazioni e l'indice rimangono nascoste, inizialmente. Ho provato (in searchBarCancelButtonClicked
) chiamare [self.tableView reloadData]
, ma questo non funziona.
Ho un [self.tableView reloadData]
nel mio viewWillAppear
, che aiuta in un modo: se seleziono una riga, spingo un'altra vista sullo stack e poi torno a questa tabella, le intestazioni e l'indice sono lì come desiderato.
Cosa potrei fare di sbagliato?
Soluzione
Ho scoperto che a volte, quando [tableview rentooaddata] non funziona, facendo questo lo farà:
[tableView performSelector:@selector(reloadData) withObject:nil afterDelay:0];
Per qualsiasi motivo, a volte la vista del tavolo entra in tale stato che deve attendere fino alla prossima iterazione attraverso il ciclo di corsa prima che il ricarica sarà efficace.