我的應用程序是iPad的風景,使用自動佈局。UISearchBar消失取消
初始視圖的表格視圖只佔用一半的屏幕(另一半是MapKit視圖)。
包含該表格(和地圖視圖)的該視圖控制器是該應用的根控制器的頂部視圖控制器。
在視圖加載時,我實例化UISearchController
並將其搜索欄添加到表視圖的標題視圖中,標準過程也是如此。
如果我點擊搜索欄並輸入一些文字,結果會顯示出來。如果我在這裏取消搜索,沒問題。
如果相反,我選擇其中一個結果行,並推入下一個屏幕,並彈出,搜索欄消失。我可以再次調用恢復它:
self.tableView.headerView = self.searchController.searchBar
在viewDidAppear(),但只適用,直到我點擊搜索欄中的「取消」按鈕(在這一點,它會再次消失 - 右側範圍按鈕合攏動畫結束)。
我見過很多類似的問題,但沒有介紹我確切的症狀,並沒有任何的解決方案(或其他任何我能想到的):
// In viewDidLoad():
self.definesPresentationContext = true
self.searchController.definesPresentationContext = true
self.extendedLayoutIncludesOpaqueBars = true
self.navigationController?.extendedLayoutIncludesOpaqueBars = true
self.navigationController?.navigationBar.translucent = true
...好像在我的情況下工作。
最奇怪的部分是,我有搜索接口(在模態視圖控制器呈現)其它類似的表視圖,其中沒有差別我能夠相對於配置地點,和那些工作好嗎...
我知道我必須失去了一些東西......
我不確定,但是在製作自己的控制器時,我看到了類似的東西。嘗試玩'presentationContext'。 –
你的意思是'definesPresentationContex'?我試過'true'和'false'。即使在導航到下一個視圖控制器(推繼續)之後,False也會導致搜索欄保持在屏幕上。 –
是的,你是對的。恰恰是我在我的控制器中看到的這個問題。你可以檢查'navigationBar。半透明的價值從兒童控制器返回後?也許子控制器設置一個值'navigationBar.translucent'到'false'? –