0

tableView詳細ページが 1 つと 2つあるアプリを作成しています。テンプレートから始めましたmasterViewControllerが、レイアウトをカスタマイズしたいことがわかったtableViewので、 を削除して、内側にnavigationControllerを追加しました。.から出られないという事実を除いて、すべてがうまく機能しています. の上部にボタン付きのナビゲーション バーを追加しましたが、機能していません (ナビゲーション コントローラーがないためだと思います)。メソッドも使用してみましたが、それも機能しませんでした。viewControllertableViewdetailViewdetailViewcancel[self.navigationController popToRootViewControllerAnimated:YES];popToViewController

私の質問は、ビューを「ポップ」できるようにするにはどうすればよいですか? tableViewセグエ経由で からに移動すると、ビューがどこかにプッシュされていると想定していますがdetailView、どうすれば戻ることができますか? 何らかの形式を使用する必要がありnavigationControllerますか?

どんな指示や助けも素晴らしいでしょう!

4

3 に答える 3

1

短い答え: はい

ナビゲーション コントローラーを削除しないでください。削除しないと、ビューをポップおよびプッシュできません (ただし、モーダル トランジションは引き続き使用できます)。

すべてのナビゲーション コントローラーは実際には、viewController の配列のマネージャーです。プロパティを見るとself.navigationController.viewControllers、ナビゲーション チェーンにアクセスし、それを に入れ、NSMutableArray変更を行って元に戻すことで、必要に応じて変更できます。参考までに。

于 2013-05-23T19:19:21.320 に答える
1

私によると、NavigationControllerを使用することは良い選択です..

NavigationController を使用している場合は[self.navigationController popViewControllerAnimated:YES];、 popToRootViewController の代わりに使用して、ポップしてプッシュすることができます

[self.navigationController pushViewControllerAnimated:YES];

「ビュー」を使用する場合は、[self.view removeFromSuperview]ビュー全体を削除するか、すべてのビューを削除するために使用します。

for (UIView *view in [self.view subviews]) 
  {
     [view removeFromSuperview];
  }

お役に立てれば..

于 2013-05-23T19:19:35.270 に答える
-1

アプリをナビゲートするには、アプリにナビゲーション コントローラーが必要です。ストーリーボードでアプリを設定している場合は、ナビゲーション コントローラーを右側からドラッグして、ビュー コントローラーにリンクできます。

self.navigationController が nil であるナビゲーション コントローラーがないため、ポップ コードが機能していない可能性があります。

ほとんどコードでアプリを作成している場合は、ナビゲーション コントローラーを割り当てることができます。

UINavigationController* navigationController = [[UINavigationController alloc] initWithRootViewController: masterViewController];

そこから、他のページにプッシュしたり、前のページにポップしたりできます

ストーリーボードのページの上部にナビゲーション バーを追加しても、View Controller のナビゲーション機能は提供されません。UI ナビゲーション バーを実際のナビゲーション バーに設定したい場合は、そこに座っているだけのユーザー インターフェイス オブジェクトです。コードで設定する

[self.navigationController setNavigationBar:navigationBarProperty];

あなたの質問に答えるには、ナビゲーションコントローラーが必要で、ストーリーボード -> ナビゲーションコントローラー -> tableView -> detailView でトリックを行う必要があります

于 2013-05-23T19:19:12.627 に答える