我正在嘗試獲取搜索欄,它的範圍在導航欄中,就像視圖第一次出現的方式一樣。如果只需將UISearchBar拖放到界面構建器中的表視圖控制器上,它將像表頭一樣放置在表格中。然後,當你點擊它時,它會動畫進入我之後的編隊。問題是我希望它無需任何點擊開始了這種方式,在左側後退按鈕,沒有取消右鍵:iOS:在導航欄中顯示搜索欄時隱藏示波器欄
所以,給搜索欄當前的工作重點,而不攻,我試圖在viewDidLoad中添加[_searchBar becomeFirstResponder];
,它不起作用。接下來我想:
self.searchDisplayController.displaysSearchBarInNavigationBar = YES;
搜索欄將在導航欄中顯示的確但範圍欄消失了,(爲什麼蘋果WHY),有一個尷尬的差距。
我也試着子類UINavigationBar的,使之高。很容易改變它的大小,但內容對齊在欄的底部,並重疊任何你想添加的內容。
所以要重新迭代,當視圖第一次出現時,我需要在導航欄中顯示搜索欄,而不需要用戶點擊。我還應該指定這是在UITableViewController上(因爲該頁面有一個UIRefreshConrol),所以簡單地將工具欄放在表視圖上方不是一個選項。謝謝。
沮喪,我沒有想'將'becomeFirstResponder'放在'viewDidAppear:'中。謝謝!回答你的問題:我希望它始終可見bc VC專門用於搜索。 (看看Instagram的搜索選項卡 - 這就是我所追求的)此外,有一個很好的理由使用「UISearchDisplayController」 - 兼容iOS7。它可能會在iOS8中被棄用,但它仍然是完全有效的(並且仍然在IB中的對象庫中)。問題仍然存在:如果您使用該選項在導航欄中顯示搜索欄,爲什麼Apple會隱藏該範圍,而不考慮設置'showsScope = YES'? – inorganik
它爲什麼隱藏範圍欄?我不知道,但[它被記錄](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISearchDisplayController_Class/index.html#//apple_ref/occ/instp/UISearchDisplayController/displaysSearchBarInNavigationBar )。 *「如果您在顯示在導航欄中的搜索欄中將'showsScopeBar'屬性設置爲'YES',則系統會引發異常。」*可能因爲導航欄高度不足以顯示範圍欄。 – greg