1

ビューコントローラーからtestviewcontrollerをプッシュしているアプリケーションがあります。testviewcontrollerには戻るボタンとはいボタンがあります。戻るボタンを押すと、前に戻ります

[self.navigationController popViewControllerAnimated:YES];

はいボタンを押すと、別のView Controllerを使用して押しています

 GettingViewController *get  =[[GettingViewController alloc] initWithNibName:@"GettingViewController" bundle:nil];
 [self.navigationController pushViewController:get animated:NO];

これはすべて正常に機能しています。ボタンを押すとrewardsgetで、これを使ってtestviewcontroller.usingに戻ります`

for (TestViewController*vc in [self.navigationController viewControllers]) {
            if ([vc isKindOfClass: [TestViewController class]]){

                 [[self navigationController] popToViewController:vc animated:YES];
            }
        }
`

しかし、そのビューで戻るボタンを押すと、新しくプッシュされたビューコントローラー、つまりrewardsgetに移動する必要があります。 viewcontroller、最新ではありません。これについて誰か助けてくれますか?

4

2 に答える 2

0

スタックに TestViewController のインスタンスが複数あるようです。正しいものに到達するには、TestViewController へのポインターを GettingViewController に渡すだけです。プロパティが必要な場合があります。

@property (nonatomic, assign) TestViewController* testViewController;

TestViewController 呼び出しに戻る準備ができたら[self.navigationController popToViewController: self.testViewController animated: YES];

とはいえ、ナビゲーション フローについてはもう少し検討が必要なようです。iOS では、ハブ アンド スポーク ナビゲーション フローが最も自然です。

于 2012-08-22T13:54:24.187 に答える
0

あなたのforループでは、すべてのviewControllerを通過しますが、これらはTestViewController(TestViewController * vc ...)であるとすでにふりをしています。もちろん、最初に探しているのは isKindOfClass TestViewController です。

これを UIViewController*vc に変更してみてください!

于 2012-08-22T14:05:05.743 に答える