C'est un sorta vieille question, mais je viens de battre ma tête contre ce pour une heure ou deux et finalement pensé à elle, donc je pensais que je partage pour la postérité. Au début, j'ai essayé de faire des choses comme démissionnaire premier intervenant / suppression de recherche texte / etc par la main, mais dans ce point de vue que je voulais à l'utilisateur de pouvoir éventuellement utiliser la barre de recherche plusieurs fois, et de faire les choses manuellement a été ce qui signifie que la barre de recherche aurait dû être re-set-up à chaque fois que l'utilisateur a commencé à le modifier à nouveau - semblait être la bonne approche. Voici ce que j'ai fait:
J'avais déjà ajouté à la barre de recherche, avec l'option de recherche de contrôleur d'affichage, dans Interface Builder. Dans mon application, j'ai mis en place un UISearchDisplayController IBOutlet, et lié à la recherche de contrôleur d'affichage à l'aide de l'IB. Enfin, à l'endroit où je veux faire disparaître la barre de recherche, je n'ai qu'à appeler:
[mySearchController setActive:NO];
Fonctionne comme un charme!