2014-06-09 22 views
6

我的UITableViewController符合新的UISearchControllerDelegate以及UISearchResultsUpdatingUISearchControllerDelegate - 搜索欄在表頭中不可見

下面是搜索欄,我的設置代碼:

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

然而,在模擬器中運行這個時候有表頭沒有搜索條,即使它是在代碼中指定。我也嘗試了viewWillAppear中的這段代碼,但是再次沒有顯示搜索欄。

回答

9

我被蘋果工程師通知你必須給搜索框一個框架。如果您打印搜索欄的框架,您會注意到它的高度爲零。所以這可能是Apple代碼中的一個錯誤。

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

編輯:

的說明文件,你必須要顯示結果的視圖控制器通過。要在您所在的相同視圖控制器中顯示此內容,請傳入nil。

var searchController = UISearchController(searchResultsController: nil) 
+0

謝謝,現在顯示。然而,當我點擊它時出現錯誤'2014-06-10 11:23:34.410 MyApp [21108:1196461]警告:嘗試在<_TtC8MyApp22ViewController:0x10c21cc50>上呈現,其視圖不在窗口層次結構中!'和屏幕是黑色的。有任何想法嗎? – BytesGuy

+4

@Newbzors檢查編輯 – Vikings

+0

這工作,謝謝! – BytesGuy