ユニバーサル アプリ用の Xcode 6 の UISplitViewController テンプレートに基づいてシンプルなアプリを構築しようとしています (Storyboard と CoreData/NSFetchedResultsController を使用)。このアプリは、MasterViewController の検索バーも提供する必要があります。残念ながら、Xcode 6 は UISearchBar/UISearchController コンボ用の InterfaceBuilder 要素を提供していません (廃止された UISearchBar/UISearchDisplayController のみ)。
iOS 開発者ライブラリでは、Apple が「UISearchController を使用したテーブル検索」の例を提供していますが、これは UISplitViewController に基づいておらず、iPhone のみをサポートしています。
私の問題は、すべての状況で正しい ViewController に詳細ビューを表示できないことです。Apple サンプル プロジェクトから UISplitViewController テンプレートにアプローチを移そうとしました。この場合、別の UITableViewController サブクラス (ResultsTableViewController) で検索結果を表示し、これを UISearchController の searchResultsController として使用することをお勧めします。このセットアップ用の InterfaceBuilder でシーンを作成できなかったため、これらを手動でコードに追加する必要がありました。
ResultsTableViewController のテーブル セルをクリックすると、問題が発生します。この vc は InterfaceBuilde のシーンの一部ではなく、SplitViewController 設定に正しく追加する方法がわかりません。最大の問題は、iPhone 6 Plus と UISplitViewController の奇妙な動作です。縦向きモードでは、iPhone のように動作し、SplitViewController を持っていないようで、DetailViewController をプッシュする NavigationController のみを使用します。ランドスケープ モードでは、SplitViewController を備えた iPad のように動作しますが、SplitViewController の 2 番目の ViewController を取得し、これに DetailViewControllerchildControllers
をプッシュする必要がありました。
ポートレート モードで開始してランドスケープ モードに切り替えると、DetailViewController がすべてなくなり、DetailVC があるべき場所にグレーのスペースが表示されます。縦向きモードにすると、DetailViewController が SplitViewController からキックされるようです (または、SplitViewController が iPhone の NavigationController セットアップのためにまったくキックされます)。ランドスケープに戻すと、SplitViewController が再度初期化されますが、DetailViewController が適切に初期化されません。
ユニバーサル UISplitViewController に検索機能を正しく実装する方法に関するテンプレートや提案はありますか?
乾杯ビョルン