1

私はこの構造を持っています:

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

ストーリーボードから「UINavigationItem」を追加したい場合、ナビゲーションバーは「無効」になっているため、プログラムで右ボタンを追加しようとしました:

UIBarButtonItem *button = [[UIBarButtonItem alloc]
                           initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
                           target:self
                           action:@selector(showPickerView:)];
self.navigationItem.rightBarButtonItem = button;

しかし、何も起こりません。ストーリーボードからナビゲーション バーのタイトルの名前を変更しましたが、アプリを実行するとタイトルが設定されません。何が問題の原因なのか本当にわかりません。表示されているのは戻るボタンだけです。ご協力ありがとうございました。

4

4 に答える 4

2

タブ バー コントローラーの各アイテムには、ルート コントローラーとしてナビゲーション コントローラーが必要です (必要がない場合は、すべてのアイテムにナビゲーション コントローラーが必要というわけではありません)。現在持っているのは、ナビゲーション コントローラーのタブ バー コントローラー (モーダルでない限り) であるため、タブ バー コントローラーに含まれるビュー コントローラーはナビゲーション コントローラーを認識できません。

于 2013-07-17T17:04:24.817 に答える
1

他の回答が指摘しているように、あなたの階層UINavigationViewControllerは正しくありません。はUITabBarViewController常に の親になりますUINavigationViewControllers

「タブ」であるUIViewControllerごとUINavigationViewControllerに、セグエを持つ各「タブ」UIViewConrolller の「前」にいる必要があります。

したがって、他の誰かがこのスレッドで指摘したように、すべての「タブ」に UINavigationViewController は必要ありません。UINavigationViewController でUIViewControllerナビゲーションを追跡したい他のビューにセグエする「タブ」のみです。

階層は、@App Dev Guy の回答で確認できます

Swift 2 では、Xcode 7 に UINavigationController を追加するための非常に便利な機能があります。

  1. の「タブ」として使用されている UIViewController を選択します。UITabBarNavigationController
  2. 上部の Xcode メニューで、「エディター」を選択 ->
  3. "埋め込む" ->
  4. 「ナビコントローラー」

    ここに画像の説明を入力

于 2016-01-17T21:25:03.853 に答える
0

私はあなたの問題を再現しようとしました。

  1. 新しい「Single View」プロジェクトを開始しました。
  2. iPhoneストーリーボードを選択
  3. ビューコントローラーを選択しました
  4. メニュー -> エディター -> 埋め込み -> ナビゲーション コントローラー。
  5. オブジェクトブラウザを開く
  6. 検索バーに「バー ボタン アイテム」と入力します
  7. ナビゲーション バーの上にバー ボタン項目を描画します。

終わり。同じことができるかどうかを確認してください。

ここに画像の説明を入力

于 2013-07-17T17:00:02.320 に答える