1

次のレイアウトのストーリーボードがあります。

  1. TabBarController
  2. --> ナビゲーションコントローラー
  3. ----> テーブルビューコントローラー
  4. ----> テーブルビューコントローラー
  5. ----> TabBarController (プッシュ時に下部バーを非表示)
  6. ------> TableViewContrrler (タイトルを設定)

4 と 5 をナビゲーション コントローラー 2 にプッシュします。5 を押すとボトム バーが非表示になり、タブ バー項目が選択されているため 6 が表示されると、ビュー コントローラー 6 に設定されたタイトルがナビゲーション バーに表示されません

私の質問は、インターフェイスビルダー (XCode5) からこれを設定する最良の方法は何ですか?

また、View Controller 6 にナビゲーション項目を追加して、そこにタイトルを設定しようとしましたが、これは効果がありませんでした。

これを書いているときに、ビュー コントローラー 6 がナビゲーション コントローラー スタックにプッシュされないことに気付きました。これが、ナビゲーション アイテムがない理由です。View Controller 3 にナビゲーション項目を設定すると期待どおりの効果が得られることに気付き、質問を断念しようとしました。これは、別のタブに変更するときにナビゲーション バーのタイトルを切り替えることです。

これはもちろん、それらが完全に異なるナビゲーション コントローラーであるためです。私が持っている構造でこの動作をシミュレートする方法はありますか? そうでない場合は、別のアプローチを提案できますか?

4

1 に答える 1

5

タブ バー コントローラーをナビゲーション コントローラーにプッシュしないでください。

pushViewController :animated:の UINavigationBar クラス リファレンスは次のように述べています。

パラメータ
viewController
スタックにプッシュされるビュー コントローラ。このオブジェクトは、タブ バー コントローラーのインスタンスにすることはできません。また、ナビゲーション スタック上にまだ存在していてはなりません。

タブ バー コントローラーをプッシュするのではなく、モーダルに提示することをお勧めします。そうすれば、これらの問題の両方が解決されます。タイトル付きのナビゲーション バーを追加するには、ビュー コントローラー #6 をナビゲーション コントローラーに埋め込み、次に提示するこのタブ バー コントローラーに埋め込みます。

したがって、ストーリーボードは次のようになります。

UITabBarController
+ (tab) UINavigationController
        + (push) UITableViewController
        + (push) UITableViewController
        + (modal) UITabBarController
                  + (tab) UINavigationController
                          + (push) UITableViewController (set title)
于 2013-09-24T10:20:56.700 に答える