2016-03-24 14 views
0

Ich habe eine UITableView, die völlig in Ordnung funktioniert. Es ist in einem UITabbarController verschachtelt.Wie komme ich zurück zu UITableView von SearchResultDetailView

Ich habe auch einen UISearchController mit einer UISearchBar integriert, mit der der Benutzer den Inhalt von UITableView durchsuchen kann. Das funktioniert auch gut.

Wenn Sie eine der TableViewCells auswählen, gelangen Sie zu einer Detailansicht.

Wenn Sie dies ohne aktive Suche tun, funktioniert alles gut, aber wenn Sie einen Suchbegriff eingeben und Sie eine Zelle aus den Ergebnissen auswählen, gibt es keine Möglichkeit, zurück zum TableView zu gelangen, da oben keine Schaltfläche zurück ist linke Ecke, noch können Sie die Wischgeste verwenden.

Ich muss hinzufügen, dass ich für die Suchergebnis keine separate UITableView angeben:

self.searchController.searchBar.delegate = self 
self.searchController.searchResultsUpdater = self 
self.tableView.tableHeaderView = self.searchController.searchBar   
self.definesPresentationContext = true 

ich die SearchController wie folgt definieren:

var searchController: UISearchController = { 
     let controller = UISearchController(searchResultsController: nil) 
     controller.dimsBackgroundDuringPresentation = false 
     controller.searchBar.sizeToFit() 
     return controller 
    }() 

dachte ich, dass vielleicht ich habe einen UINavigationController in den UITabbarController zu legen und meine TableView als RootViewController zu setzen, aber dann hatte ich das Problem, dass die SearchBar hinter der Navigationsleiste versteckt war ...

EDIT (@ryantxr): meine DidSelectRowAtIndexPath:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     tableView.deselectRowAtIndexPath(indexPath, animated: true) 
    } 

in cellForRowAtIndexPath es keinen Unterschied zwischen Suche und keine Suche wie die Zellen gleich aussehen. Dies ist auch der Grund, warum ich noch nicht zwei verschiedene Segmente verwende.

Aber Sie haben Recht, ich benutze nicht verschiedene Übergänge bei der Suche und keine Suche. Der einzige Übergang, der verwendet wird, wenn eine Zelle angeklickt wird, ist im Storyboard eingestellt und in prepareForSegue setze ich die Attribute des Ziel-UIViewControllers, was auch gut funktioniert.

+1

Kann ich Ihre Tabellenansicht Funktionen, didSelectRowAtIndexPath, cellForRowAtIndexPath usw. sehen Sind die Übergänge auf den Detailbildschirm von separaten Segmenten behandelt, wenn es Suche vs nicht-Suche ist? – ryantxr

+1

Um zu verdeutlichen, wenn Sie in den Nicht-Such-Modus zum Detailbildschirm wechseln, erhalten Sie eine Zurück-Schaltfläche, aber wenn Sie vom Suchmodus übergehen, erhalten Sie keine Zurück-Schaltfläche. Ist das richtig? – ryantxr

+0

Ja, das ist richtig – Heckscheibe

Antwort

0

Es stellte sich heraus, dass das Problem dieses kleine Stück Code in der UITableViewController war, die die UISearchController enthält dafür verantwortlich war:

self.definesPresentationContext = true 

durch das Löschen, das Ergebnis-View-Controller korrekt dargestellt und die navigationbar tat nicht verschwinden, so war es möglich, zurück zu den Searchresults ect ...

Verwandte Themen