Skip to content

UINavigationControllerをつかって、今のビューより2つ後ろに戻るには?

2011年7月25日

「戻る」じゃなくてもっと後ろに戻るにはどうしたら良いの?というやつ。

ソースだけで言うと以下の通り

[self.navigationController popToViewController: [self.navigationController.viewControllers objectAtIndex:0]

popToViewControllerというのを使う。popViewControllerとは違うから注意。

navigationControllerは、ViewControllersという配列に画面遷移の履歴を保持してるので、戻りたい配列の番号を指定すると戻れるという感じ。

最初、新たにビューつくろうとしてたけど動かないし、そもそも戻ることにならないので注意。あくまで「戻る」ってこと。

ついでに、戻った先のメソッドを実行したいんだけど? とか 値を入れたいんだけど?ということもあるとおもうけど、そのときは、

hogeViewController *parent = [self.navigationController.viewControllers objectAtIndex:0];
[parent method];
parent.text = @"text";
[self.navigationController popToViewController:parent animated:YES];

てなかんじで該当するビューコントローラーにviewControllersのビューを入れて、そのメソッドを叩くなりなんなりで渡したり実行できたりする。

広告

From → iPhone開発

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。