J'ai une configuration UISearchDisplayController
avec un UITableViewController
qui est imbriqué dans un UINavigationController
. Lorsqu'une sélection d'une cellule est effectuée, la méthode UITableView's
didSelectRowAtIndexPath
est déclenchée, ce qui pousse une nouvelle vue vers le contrôleur de navigation parent. Cette nouvelle vue devrait avoir la barre de navigation cachée à l'entrée.Je conserve la navigationBar de UINavigationController masquée après la sélection de UISearchDisplayController
[[self navigationController] setNavigationBarHidden:YES animated:NO];
J'utilise cette ligne dans la méthode didSelectRowAtIndexPath
pour cacher la barre de navigation. Cela fonctionne correctement lorsqu'une ligne est sélectionnée sans utiliser le contrôleur de recherche, mais qu'elle est remplacée lors de la sélection d'un résultat de recherche. Il semble que le UISearchDisplayController
le prenne dans sa droite pour décocher la navigationBar quelque temps après que la ligne soit sélectionnée.
Si je déplace l'appel setNavigationBarHidden
dans la méthode viewWillAppear
de la vue cible, les résultats sont similaires. Je peux le faire fonctionner en plaçant l'appel de la peau dans viewDidAppear
, mais cela fait un très effet de transition maladroit qui se sent nerveux et hors de propos. Je voudrais que la navigationBar soit déjà cachée avant que la nouvelle vue ne glisse sur l'écran.
Est-ce que quelqu'un sait où se déroule la barre de navigation et/ou comment contourner ce comportement?
Désolé je n'a pas encore marqué une bonne réponse; J'ai finalement trouvé un hack qui a fonctionné, qui est probablement le même que celui ci-dessous, mais j'ai depuis déménagé et je n'ai pas regardé ce projet depuis un moment. Quand j'aurai une chance, je vérifierai la méthode que j'ai utilisée et je mettrai à jour cette question. – peppy
Quel piratage avez-vous utilisé? – Sorig