2014-06-09 17 views
6

Mój UITableViewController jest zgodny z nowym UISearchControllerDelegate, a także UISearchResultsUpdating.UISearchControllerDelegate - Pasek wyszukiwania nie jest widoczny w nagłówku tabeli

Oto mój kod instalacyjny do paska wyszukiwania:

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

Jednak kiedy to działa w symulatorze nie ma pasek wyszukiwania w nagłówku tabeli, mimo że jest określona w kodzie. Próbowałem również tego kodu w viewWillAppear, ale znowu nie pokazano paska wyszukiwania.

Odpowiedz

9

Zostałem poinformowany przez inżyniera Apple, że musisz nadać ramce pasek wyszukiwania. Jeśli wydrukujesz ramkę paska wyszukiwania, zauważysz, że jej wysokość wynosi zero. Jest to prawdopodobnie błąd w kodzie Apple'a.

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

Edit:

Dokumentacja określa, że ​​należy zdać w widoku kontrolera, który chcesz wyświetlić wyniki. Aby wyświetlić to w tym samym kontrolerem widoku, w którym się znajdujesz, podaj zero.

var searchController = UISearchController(searchResultsController: nil) 
+0

Dziękuję, teraz pokazuje. Jednak pojawia się błąd podczas stukania w niego '2014-06-10 11: 23: 34.410 MyApp [21108: 1196461] Ostrzeżenie: Próba zaprezentowania na <_TtC8MyApp22ViewController: 0x10c21cc50> którego widok nie znajduje się w hierarchii okna ! 'a ekran jest czarny. Jakieś pomysły? – BytesGuy

+4

@Newbzors sprawdź edytuj – Vikings

+0

To działa, dziękuję! – BytesGuy

Powiązane problemy