3

これは簡単に理解できるように思えますが、今日の午後はうまくいきませんでした。私は、私の問題のこの簡単で単純化されたストーリーボードのモックアップをまとめました。

基本的に、以下のテーブル ビュー コントローラーは、(既存のナビゲーション コントローラーに加えて) タブ バー コントローラーにも配置したいと考えています。タブは、2 つのテーブル ビュー コントローラー間で切り替わります。

現在、ボタンを備えたView Controllerは一種のメニューとして機能します。各ボタンは、テーブル ビュー コントローラーの 1 つにつながります。理想的には、このビュー コントローラーにはタブ バーが表示され、テーブル ビュー コントローラーのナビゲーション バーの [戻る] ボタンからのみ到達可能です。

tabbarcontrollers に埋め込むいくつかの異なる方法を試しましたが、どれも望ましい結果をもたらしません:

-両方のテーブル ビュー コントローラーを選択し、それらをタブ ビュー コントローラーに埋め込んでみました。シミュレーターにタブバーが表示されず、「到達できないシーン」という警告が表示されます。

-初期ナビゲーションコントローラーをタブバーコントローラーに埋め込んでみました。これにより、最初の「メニュー」ページのタブ エントリが作成されます。テーブルビューをタブビューに接続すると、プッシュセグエでも問題が発生します。

ストーリーボードの上にいくつかのプログラム オプションを実装しても問題ありません。データの比較的単純なプレゼンテーションであるため、このプロジェクトにストーリーボードを選択しました。

これについての適切な方法は何ですか?ありがとう!

ストーリーボードのスクリーンショット

4

2 に答える 2

9

タブ バー コントローラーは、ビュー階層のルート ビュー コントローラーである必要があります。タブ バー コントローラーを他の種類のコンテナー コントローラー内に配置することは、HIG および Apple の標準に反します。

アップルのドキュメントから:

タブ バー インターフェイスを展開する場合は、このビューをウィンドウのルートとしてインストールする必要があります。他のビュー コントローラーとは異なり、タブ バー インターフェイスは別のビュー コントローラーの子としてインストールしないでください。

つまり、ここでの結論は、設計を再考する必要があるということです。1 つのオプションはUITabBarController、 をウィンドウのルート ビューとして設定し、各 をUITableViewController内にUINavigationController配置して、 内に配置することUITabBarControllerです。UITabBarControllerこのようにして、引き続きナビゲーション バーを取得し、Apple のデザイン ガイドライン内にとどまります (これらの厄介な警告も表示されません。ルート ビュー以外としてインストールしようとすると、Apple は最近例外をスローすることさえあります)ウィンドウの)。

于 2013-01-09T23:38:01.083 に答える