2016-08-12 26 views
-1

アプリケーションで5つのビューコントローラを使用していて、5番目のビューコントローラを使用していた場合、ボタンアクションで2番目のビューコントローラに戻る場合は、どのコードを書きますか?View Controllerに戻るにはどうすればいいですか?

+8

あなたは 'UINavigationController'のマニュアルを見たことがありますか? – rmaddy

答えて

1

あなたができることは、popToViewControllerです。

だから、いくつかのステップがあります:

  1. は、あなたが戻って行きたいのUIViewControllerを取得します。
  2. self.navigationController.viewControllersのようなものを実行して、ナビゲーションコントローラからすべてのView Controllerを取り出します。
  3. 手順1で使用するビューコントローラと一致するように、各ループにaを実行し、それぞれのif条件を追加します。
  4. ナビゲーションコントローラのpopToViewControllerメソッドを使用します。

次のような何か:

for (UIViewController *vc in self.navigationController.viewControllers) { 
    if ([vc isKindOfClass:[ViewController2 class]]) { 
     [self.navigationController popToViewController:vc animated:NO]; 
    } 
} 
+0

'popToViewController'の第1引数は変数' vc'でなければなりません。 – rmaddy

+0

ループまたは 'if'の必要はありません。単に[self.navigationController popToViewController:self.navigationController.viewControllers [1] animated:YES]; 'を実行してください。 'viewControllers'配列はビューコントローラが積み重ねられた順になります。 – rmaddy

+0

@rmaddy答えを訂正しました。指摘していただきありがとうございます。そして、ええ、私は彼がforループを提案しました。なぜなら、彼はどのコントローラクラスに行くのか知っているかもしれないが、インデックスを知っているからです。 – Harsh

関連する問題