我々は、指定された特定のUIViewController
のUISearchController
上UISearchController.hidesNavigationBarDuringPresentationは、私たちのプロジェクトで
hidesNavigationBarDuringPresentation = false
。 searchControllerにはスコープタイトルの配列があります。これまでのところ、iOS 10までうまく動作しますが、iOS 11のベータ版では、hidesNavigationBarDuringPresentationのfalse設定が無視され、表示が乱れるように見えます。プロジェクトの他の要因が原因ではないことを確認するため、私はUITableViewController
という単一のベアボーンテストプロジェクトを作成しました。UISearchController
はもう一つの単純なUITableViewController
で初期化されています。 scopeButtonTitles
を割り当てる最後の行が存在しない場合
self.title = "Search Bar Scope Test"
let searchViewController = SearchViewController(style: .plain)
searchController = UISearchController(searchResultsController: searchViewController)
searchController!.searchBar.sizeToFit()
tableView.tableHeaderView = searchController!.searchBar
searchController?.hidesNavigationBarDuringPresentation = false
searchController?.searchBar.scopeButtonTitles = ["scope 1", "scope 2", "scope 3", "scope 4", "scope 5"]
は、ナビゲーションバーを非表示に取得していないと検索バーは元の位置のままで次のコードは、メインビューコントローラ上のviewDidLoad()
方法です。ただし、その行が存在する場合、NavigationBar
は非表示になり、searchBar
とスコープボタンはすべてiPhoneとiPadの両方でポートレートモードで上に移動しますが、スコープボタンが多く、フィットできない場合でもランドスケープモードで同じままです1行で)。
誰かがこれに遭遇しましたか?これはiOS 11でのバグか期待される動作(確かに私たちが望む動作ではありません)ですか?回避策はありますか?
ありがとうございます!私は別の関連問題を調査している間に
スコープボタンに問題はありませんが、検索バー全体がテーブルビューから飛び出して画面の上部に付いています。 Xcode 9 GMの使用。 –
@ChrisPaveglio私はついにこの問題の原因を発見しました。下の私の答えを見てください。 – CodePlumber
ありがとうございますが、それは私の問題ではありません。私はそれがよりユニークだと思うより多くの時間をb/cそれを把握する必要があります。私は2つのテーブルビューを並べてiPadレイアウトを持っており、1つは検索バーを持っており、それは決してテーブルビューを残すべきではありません。私はもっと先に進む前にいくつかのことをリファクタリングする必要があると思う。 –