Ich habe UISearchController und eine UITableView. Der Kodex in viewDidLoad ist:UISearchController dimsBackgroundDuringPresentation nur, wenn der Suchtext leer ist
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = YES;
[self.searchController.searchBar sizeToFit];
self.searchController.searchBar.delegate = self;
self.searchController.delegate = self;
self.tableView.tableHeaderView = self.searchController.searchBar;
self.tableView.userInteractionEnabled = YES;
ich die graue Ansicht erschien werden soll, wenn ich auf der Suchleiste tippen und wenn ich Eingabe beginnen, die graue Ansicht verschwindet und zeigt die Tableview, so kann ich auf den Zellen tippen . Das bedeutet, dass die graue Ansicht nur angezeigt wird, wenn die Suchleiste leer ist (genau wie das Standardsuchverhalten in E-Mail- und Kontakt-Apps). Ich versuchte, die
self.searchController.dimsBackgroundDuringPresentation
im Delegatmethode zu basierend auf der searchBar.text
-(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
, aber es funktioniert nicht. Irgendwelche Ideen?
Danke,
So funktioniert dimsBackgroundDuringPresentation. Wie implementieren Sie Uisearchcontroller? Es wird die Suchergebnisse nicht verdunkeln. Scheint so, als würdest du wahrscheinlich keine präsentieren. – beyowulf
Das ist alles was ich für den UISearchController gemacht habe. alles andere wird durch die Tabellenansicht implementiert und (void) updateSearchResultsForSearchController: (UISearchController *) searchController lädt die Tabla-Ansicht basierend auf dem Suchtext neu. Gibt es noch etwas anderes, was ich tun muss? – Missa
Leider ist es komplizierter als das. Sie müssen in der Datenquelle Ihrer Tabellenansicht nach Suchergebnissen suchen und sie dann dem Benutzer präsentieren. Sie können ein Tutorial finden, wie man das hier macht: http://www.jhof.me/simple-uisearchcontroller-implementation/ – beyowulf