2014-06-09 11 views
6

Il mio è conforme al nuovo UISearchControllerDelegate e anche UISearchResultsUpdating.UISearchControllerDelegate - Barra di ricerca non visibile nell'intestazione della tabella

Ecco il mio codice di setup per la barra di ricerca:

override func viewDidLoad() { 
    var searchController = UISearchController(searchResultsController: self) 
    searchController.searchResultsUpdater = self 
    self.tableView.tableHeaderView = searchController.searchBar 
    self.definesPresentationContext = true 
} 

Tuttavia, quando si esegue questo nel simulatore non c'è barra di ricerca nell'intestazione della tabella, anche se è specificato nel codice. Ho anche provato questo codice in viewWillAppear, ma ancora nessuna barra di ricerca è stata mostrata.

risposta

9

Sono stato informato da un ingegnere Apple che è necessario assegnare alla barra di ricerca una cornice. Se si stampa il frame della barra di ricerca, si noterà che l'altezza è zero. Quindi questo è probabilmente un bug nel codice di Apple.

searchController.searchBar = CGRectMake(0.0, 0.0, 320.0, 44.0) 

Edit:

La documentazione specifica che si deve passare nel controller della vista che si desidera visualizzare i risultati. Per visualizzarlo nello stesso controller di visualizzazione in cui ci si trova, passare a zero.

var searchController = UISearchController(searchResultsController: nil) 
+0

Grazie, ora mostra. Tuttavia ho un errore quando lo tocco '2014-06-10 11: 23: 34.410 MyApp [21108: 1196461] Avvertenza: Tentativo di presentare su <_TtC8MyApp22ViewController: 0x10c21cc50> la cui vista non è nella gerarchia delle finestre ! 'e lo schermo è nero. Qualche idea? – BytesGuy

+4

@Newbzors controlla la modifica – Vikings

+0

Funziona, grazie! – BytesGuy

Problemi correlati