web-dev-qa-db-ja.com

iOS:UISplitViewControllerをUINavigationControllerにプッシュできません

ナビゲーションコントローラーを使用したXCodeiPadプロジェクトがあります。 UISplitViewControllerをナビゲーションスタックにプッシュするボタンを取得しようとしましたが、次のエラーが発生しました:

スプリットビューコントローラーをナビゲーションコントローラーにプッシュすることはできません

UISplitViewControllerがUINavigationControllerとうまく連携しないことが判明しました。ただし、このボタンをクリックすると、分割ビューコントローラーを表示する必要があります。どうすればよいですか?また、重要なのは、ユーザーがナビゲーションコントローラーに戻ることができるように、戻るボタンを作成するにはどうすればよいですか?

22
Theron Luhn

SplitViewControllerを表示するには、setRootViewControllerを使用する必要があります。これは、SplitViewControllerがルートビューコントローラーである必要があるためです。

Appleのドキュメントから:

スプリットビューコントローラは、作成するインターフェイスのルートである必要があります。つまり、UISplitViewControllerオブジェクトからのビューを、アプリケーションのウィンドウのルートビューとして常にインストールする必要があります。分割ビューインターフェイスのペインには、ナビゲーションコントローラ、タブバーコントローラ、またはインターフェイスを実装するために必要なその他のタイプのビューコントローラが含まれる場合があります。

戻るには、setRootViewControllerを使用して前のページに戻る必要があります。 iPhoneアプリをユニバーサルに変換したときにこの問題が発生し、iPhone用のナビゲーションコントローラーとiPadバージョン用のsetRootViewControllerを使用することになりました。うまくアニメートできないので少し残念です 少し混乱せずに

31
glenstorey