2016-04-29 4 views
3

Ich brauche eine Tabellenansicht, um nach dem Tippen auf die Suchleiste modal präsentiert werden, und dann in der Tabellenansicht Dinge, die der Benutzer gesucht, wie Instagram Suchfunktion. Es gibt viele Tutorials über Google, wie man eine Suchfunktion macht, aber keine, wie man eine Tabellenansicht präsentiert, nachdem der Benutzer auf die Suchleiste geklickt hat. Wie soll ich das machen?Wie tableview angezeigt wird, wenn Benutzer tastbar sewbar swift

+0

Ich verstehe nicht, was ist der Unterschied zwischen dem, was Sie wollen und zwischen dem, was es hier erklärt wird (https://www.raywenderlich.com/113772/uisearchcontroller-tutorial) – Chajmz

+0

In diesem Beispiel ist die Suchleiste in einer Tabellenansicht. Meine Suchleiste befindet sich in einer Sammlungsansicht, und ich möchte, dass eine Tabellenansicht angezeigt wird, nachdem der Benutzer auf die Suchleiste geklickt hat. –

+0

So können Sie eine TableView zu Ihrem Controller hinzufügen und Sie machen es nicht jedes Mal ausgeblendet, wenn der Benutzer etwas in der searchBar suchen? – Chajmz

Antwort

4

Um die Suchergebnisse einer UISearchController erscheinen in einem neuen UITableView Ihrer Wahl, dies zu tun:

let searchController = UISearchController(searchResultsController: myTableViewController) 

statt dessen:

let searchController = UISearchController(searchResultsController: nil) 

einen View-Controller-Passing an den Konstruktor erlaubt die UISearchController, um den View-Controller zu geeigneten Zeiten anzuzeigen (dh wenn die Suche aktiv ist). Das müssen Sie tun.

Übergeben nil bedeutet, Ich verwende meine eigene Ansicht Controller (und Tabellenansicht).

+0

Ja, Sie könnten es im Storyboard machen, geben Sie ihm eine Storyboard ID und instanziieren es im Code Verwenden der 'instanziateViewControllerWithIdentifier (_ :)' -Funktion von 'UIStoryboard'. – paulvs

+0

sollte ich den Delegaten des Protokolls 'UISearchBarDelegate' auf die Sammlungsansicht oder die Tabellenansicht setzen? –

+0

Zumindest benötigen Sie nur 'UISearchResultsUpdating', seine Delegate-Methode 'updateSearchResultsForSearchController (_ :)' wird aufgerufen, wenn der Benutzer den Suchtext ändert. Sie können dies in Ihrem Tabellenansicht-Controller implementieren, den Sie an den Konstruktor von "UISearchController" übergeben, um die eigentliche Suche durchzuführen und die Tabellenansicht neu zu laden. – paulvs

Verwandte Themen