2017-10-02 11 views
0

S'il y a une meilleure façon d'accomplir cela, n'hésitez pas à me donner des conseils. Ce que j'essaie de faire est d'ouvrir un contrôleur de recherche à partir d'un événement de sélection UITableViewCell (c'est pour l'entrée d'adresse). J'ai accompli en créant un nouveau contrôleur de vue dans le story-board, etc., mais cela semble inutile pour présenter une recherche d'adresse.Comment un UISearchController peut-il être présenté sans une barre de recherche initiale?

J'ai essayé d'instancier un UISearchContainerViewController également mais je ne peux pas pour la vie de moi comprendre comment le faire "fonctionner". Il présente "noir".

Editer: J'ai trouvé que malgré ce que les docs disent sur l'encapsulation de UISearchController dans un UISearchContainerViewController présentant UISearchController fonctionne correctement.

https://developer.apple.com/documentation/uikit/uisearchcontroller

Bien qu'un objet UISearchController est un contrôleur de vue, vous ne devriez jamais présenter directement à partir de votre interface. Si vous souhaitez présenter l'interface de résultats de recherche explicitement, enveloppez votre contrôleur de recherche dans un objet UISearchContainerViewController et présentez cet objet à la place.

Répondre

0

Je travaillais aussi sur ce sujet et tout ce que je trouve est - vous pouvez vous présenter serchcontroller comme ceci:

self.present(searchcontroller, animated: true, completion: nil) 

Je sais que ce n'est pas autorisé par Apple, mais il peut résoudre votre tâche.

Aussi, je suppose que vous pouvez simplement appeler getFiestResponder sur searchBar. Si cela ne fonctionne pas, essayez d'appeler la méthode getFiestResponder sur TextField qui se trouve dans searchBar.