3

私は3つのviewControllerを持っています。最初から2番目に行き、2番目から3番目に行きます。

3 番目のビュー コントローラーから最初のビュー コントローラーに戻りたいです。

私が見つけた解決策の 1 つは、カスタム ボタンを作成して戻るボタンを置き換えることです。この方法で、独自のセレクターを実行し、firstVC に戻ります。しかし、私が作成したボタンは戻るボタンのようには見えません。

だから私が考えた1つの解決策は次のとおりです。

3 番目のビュー コントローラーに入ったら、navigationController の viewControllers 配列を変更して、2 番目のビュー コントローラーを削除します。このようにして、戻るボタンを変更せずに最初に戻ります。

これは可能ですか?UINavigationController スタックを自由に変更できますか?

前もって感謝します

4

3 に答える 3

3

スタックから2番目のViewControllerを削除して、確認することができます。問題はないはずです。

NSMutableArray *array = [[NSMutableArray alloc] initWithArray:self.navigationController.viewControllers];
[array removeObjectAtIndex:1];

self.navigationController.viewControllers = array;

または単に使用する

[self.navigationController setViewControllers:array animated:NO];

ただし、ユーザーが混乱する可能性があるため、これは推奨されるアプローチではありません。したがって、このようにするときは注意してください。

于 2012-11-09T00:48:42.947 に答える
3

そのための特別な方法があります - [UINavigationController setViewControllers:animated:]

于 2012-11-09T01:05:29.753 に答える
1

あなたが何をしているのかの詳細はわかりませんが、ユーザーがその戻るボタンで1回戻ることを期待しているときに、2回戻ることは避けたいと考えています。良い解決策は、ビューに対して他のアクションを実行することだと思います。

したがって、あなたが言ったことから、ユーザーがそのビューに移動した場合、最初に戻る必要があり、2番目のView Controllerに戻ることはできないと思います。3 番目の VC では、戻るボタンまたはナビゲーション バーを完全に非表示にしてから、何らかのアクションを明確に実行する別のボタンをビューに配置します。

于 2012-11-09T01:01:44.193 に答える