web-dev-qa-db-ja.com

iOSのプログラムでNavigation Controllerの戻るボタンを呼び出す

UINavigationControllerベースのiPhoneアプリでは、メソッドで、戻るボタンを押してビューに戻るのと同等のプログラムを実行したいと思います。

つまり、次のように自動的に[ジョブ]ボタンを押します。

Navigation Controller image

一般的なiOSの呼び出しを行うことはできますか、それとも詳細情報が必要ですか?

84
oberbaum

UINavigationControllerの-​​ -popViewControllerAnimated: メソッドはあなたが望むことをするべきです:

[navigationController popViewControllerAnimated:YES];
188
Steve Harrison

プログラムでボタンを実際に押したくないが、ボタンを押した結果を単にコピーしたい場合、現在のView ControllerをポップするようにNavigation Controllerに指示する必要があります。

[self.navigationController popViewControllerAnimated:YES];

これにより、スタックから削除され、前のView Controllerに戻ります。

24
Kevin Elliott

Swift 3.

ルートビューに戻る

self.navigationController?.popToRootViewController(animated: true)

前のビューに戻る

self.navigationController?.popViewController(animated: true)

Swift 2.

ルートビューに戻る

self.navigationController?.popToRootViewControllerAnimated(true)

前のビューに戻る

self.navigationController?.popViewControllerAnimated(true)
21
Tal Zion

電話する必要があります

popViewControllerAnimated:

これは、pushViewController:animated:を使用してView Controllerを追加することの反対です

7
Niels Castle
[self.navigationController popViewControllerAnimates:YES];

最適なオプションですが、同じView Controllerクラスを使用していない場合、または戻るボタンメソッドが呼び出される前にデリゲートが変更された場合は、

最初に戻るボタンを定義する必要があります---

UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"anyTitleForBackButton" style: UIBarButtonItemStyleBordered target: nil action: @selector(backButtonTapped)];

[[self navigationItem] setBackBarButtonItem: newBackButton];

[newBackButton release];

そして、backButtonTappedメソッドで呼び出すことができます-

[self.navigationController pushViewController:desiredViewController animated:YES];
6
Nishant Mahajan