2014-10-10 8 views
6

Ho problemi con l'utilizzo del nuovo UISearchController in IOS8. Ogni esempio che ho trovato finora utilizza la barra di ricerca come vista di intestazione di un UITableView. Che cosa fai quando la barra di ricerca deve essere visualizzata da qualche altra parte? Ad esempio, posizionando la barra di ricerca all'esterno della tabella per impedirne lo scorrimento? Che ne dici di usarlo con qualcosa come UICollectionView?Aggiunta di un UISearchController a una vista non tabella

Mi manca qualcosa qui? Non sembra che questo dovrebbe essere così complicato.

risposta

3

Posizionando UISearchBar nello titleView della barra di spostamento, è possibile impedirne lo scorrimento quando si scorre la vista tabella.

self.searchController.hidesNavigationBarDuringPresentation = NO; 
self.searchController.searchBar.searchBarStyle = UISearchBarStyleMinimal; 

// Include the search bar within the navigation bar. 
self.navigationItem.titleView = self.searchController.searchBar; 

self.definesPresentationContext = YES; 

UISearchController si basa su searchResultsController che dovrebbe essere il controller della vista che gestisce i risultati della ricerca. Assicurarsi che il controller di visualizzazione a cui punta l'aggiornamento di proprietà searchResultsController basato sul testo in UISearchBar quando è attivo lo UISearchController. In questo modo puoi utilizzare UISearchController con tableview o collectionview.