2

Also habe ich einen Navigationscontroller an einen View-Controller angeschlossen. Das bietet natürlich die Standardnavigationsleiste. Darunter habe ich noch eine Navigationsleiste mit zwei Buttons. Im Code füge ich manuell die Suchleiste hinzu, die der UISearchController dieser Navigationsleiste zur Verfügung stellt. Darunter befindet sich eine weitere Filteransicht (benutzerdefiniert) und dann eine UITableView. Alles scheint zu funktionieren, aber wenn ich auf Suchen klicke und mit der Eingabe beginne, verdeckt die Ergebnisansicht die zweite Navigationsleiste und die Suchleiste, was sie nutzlos macht. Ich habe versucht, mit self.searchController.hidesNavigationBarDuringPresentation = NO herumzuspielen; aber das verbirgt nur die Hauptnavigationsleiste. Der noch ärgerlichere Teil ist, dass der Ergebnisansicht-Controller tatsächlich Platz für die zweite Navigationsleiste lässt, aber er ist nur dahinter verborgen. Es ist sogar möglich, dies im Debug-Ansicht-Heirachy-Menü zu sehen. Hier ist der Code, den ich für die Suchsteuerung bin mit:Wie kann ich eine Navigationsleiste mit UISearchController sichtbar machen?

CUSearchResultsTableViewController *results = [self.storyboard instantiateViewControllerWithIdentifier:@"searchResults"]; 
self.searchController = [[UISearchController alloc] initWithSearchResultsController:results]; 
self.searchController.searchResultsUpdater = self; 

self.searchBarNavItem.titleView = self.searchController.searchBar; 
self.searchController.hidesNavigationBarDuringPresentation = NO; 
self.searchController.obscuresBackgroundDuringPresentation = NO; 

self.searchController.dimsBackgroundDuringPresentation = NO; 
self.definesPresentationContext = YES; 
self.searchController.delegate = self; 
self.searchController.searchBar.delegate = self; 
+0

Haben Sie den Weg gefunden, wie Sie dieses Problem beheben können? – Ramis

Antwort

1

Hier ist, wie Sie es tun können:

Objective-c

[self.navigationItem setHidesSearchBarWhenScrolling:NO]; 

Swift

self.navigationItem.hidesSearchBarWhenScrolling = false; 
Verwandte Themen