Ho UISearchController e UITableView. Il Codice in viewDidLoad è:UISearchController dimsBackgroundDuringPresentation solo quando il testo di ricerca è vuoto
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;
Voglio la vista grigia da apparso ogni volta che si tocca sulla barra di ricerca e quando si digita, la vista grigio scompare e mostra il tableView modo che io possa toccare le cellule . Questo significa che la visualizzazione grigia viene visualizzata solo quando la barra di ricerca è vuota (proprio come il comportamento di ricerca predefinito in App Mail and Contacts). Ho cercato di impostare il
self.searchController.dimsBackgroundDuringPresentation
nel metodo delegato basato sul searchBar.text
-(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
ma non funziona. Qualche idea?
Grazie,
Ecco come funziona dimsBackgroundDuringPresentation. Come stai implementando uisearchcontroller? Non attenuerà solo i risultati della ricerca. Sembra che tu probabilmente non ne presenti nessuno. – beyowulf
Questo è tutto quello che ho fatto per UISearchController. tutto il resto è implementato dalla vista tabella e (void) updateSearchResultsForSearchController: (UISearchController *) searchController ricarica la vista tabla in base al testo di ricerca. c'è qualche altra cosa che devo fare? – Missa
Sfortunatamente è più complicato di così. Devi cercare l'origine dati del tuo tableview e trovare i risultati di ricerca, quindi presentarli all'utente. Puoi trovare un tutorial su come farlo qui: http://www.jhof.me/simple-uisearchcontroller-implementation/ – beyowulf