わかりました、これは奇妙なもので、新しいプロジェクトで簡単に再現できます。
セットアップは次
のとおりです。UISplitViewControllerがあります。左側にはUITabBarControllerがあります。このタブバーコントローラーには、2つのUINavigationControllerがあります。ナビゲーションコントローラーには、UITableViewControllersがあります。これらのテーブルビューには検索バーがあります。
わかりました。この設定で何が起こるかというと、ポートレートモードでポップオーバーにこのビューを表示し、テーブルビューの1つで検索を開始してキャンセルすると、ナビゲーションバーが応答しなくなります。つまり、「戻る」ボタンと右側のボタンはクリックできません。
ポップオーバーにならないようにランドスケープモードでまったく同じことをした場合、これは起こりません。ナビゲーションバーは応答性を維持します。
したがって、問題はポップオーバー内でのみ発生するようです。
また、検索を行っても検索結果の項目をクリックすると、分割ビューの「詳細ビュー」に何かが読み込まれ、ポップオーバーが閉じられてから、ポップオーバーに戻ってクリックすることに気付きました。検索の[キャンセル]ボタンをクリックすると、ナビゲーションバーが応答します。
私のアプリケーションはユニバーサルアプリであり、iPhoneインターフェイスで同じタブバーコントローラーを使用しており、この問題なく動作します。
前述したように、これは新しいプロジェクトで簡単に再現できます。自分で試してみたい場合の手順は次のとおりです。
新しいプロジェクトを開始します-分割ビュー
新しいUITableViewControllerクラスを作成します(私はTableViewControllerという名前です)
viewDidLoadメソッドとviewDidLoadのrightBarButtonItem行のコメントを解除します(ナビゲーションバーに[編集]ボタンが表示されます)。
numberOfSectioinsInTableViewメソッドとnumberOfRowsInSectionメソッドから返す値を入力します
MainWindow.xibを開き、次の手順を実行します。
アイテムの内容を拡張できるように、中央の「表示モード」でxibを表示する必要があることに注意してください。
タブバーコントローラーをxibにドラッグして、ナビゲーションコントローラーアイテムを置き換えます
ナビゲーションコントローラーをタブバーコントローラーの下の別のアイテムとしてxibにドラッグします
タブバーコントローラーの下にある他の2つのビューコントローラーを削除します(つまり、タブバーには1つのナビゲーションコントローラーしかありません)
ナビゲーションコントローラー内で、テーブルビューコントローラーをドラッグし、それを使用してビューコントローラー(ルートビューコントローラー)を置き換えます。
新しいTableViewControllerのクラスを上記で作成したクラスに変更します(私にとってはTableViewController)
新しいテーブルビューコントローラの下にあるテーブルビューをダブルクリックして開きます(分割ビューコントローラ内のタブバーに表示されます)
「検索バーと検索表示」をテーブルビューにドラッグします
xibを保存します
シミュレータでプロジェクトを実行する
ポートレートモードで、ルートリストボタンをクリックしてポップオーバーを表示します
[編集]ボタンをクリックできることに注意してください
検索ボックスをクリックします-検索モードに入ります
[キャンセル]ボタンをクリックして、検索モードを終了します
[編集]ボタンが機能しなくなったことに注意してください
だから、誰かが私がこれが起こっている理由を理解するのを手伝ってくれる?
ありがとう、
マーク