0

ビューを他の2つのビューコントローラー(BおよびC)にプッシュする2つのボタンを含むビューコントローラー(A)があります。ビューコントローラーBはビューをビューコントローラーCにプッシュでき、ビューコントローラーCもビューをビューコントローラーBにプッシュできます。循環ナビゲーションがあります。すべてのビュー コントローラーには、独自のナビゲーション コントローラーがあります。ARCを使用しています。どうすればこれに対処できますか? ありがとう。

4

1 に答える 1

2

1 つだけ使用してくださいUINavigationControllerAそのコントローラーを使用して、コントローラーをルートコントローラーとして設定します。CそのView Controllerから、を呼び出すことで、同じナビゲーションコントローラーで「B」またはコントローラーをプッシュできます[self.navigationController pushViewController:yourDesiredViewController animated:YES];。しかし、あなたがそうで、ここからyourDesiredViewController別のものをプッシュviewControllerしている場合、同じものから来た可能性があり、スタックviewControllerに同じものがあるでしょう. これを回避するために、(B) または (C)でこれを行うことができますviewControllersnavigationControllersecondViewController

//If the user has chosen to add new user then the viewcontroller will be popped....
for (UIViewController *aVC in self.navigationController.viewControllers)
{
    if ([aVC isKindOfClass:[DesiredViewController class]])
    {
        [self.navigationController popToViewController:aVC animated:YES];
        return;
    }
}
[self.navigationController pushViewController:yourDesiredViewController animated:YES];

yourDesiredViewControllerすでにそこに存在する場合はポップするかyourDesiredViewController、スタックにないのでプッシュします。あなたBCコントローラーでそれをしてください。

于 2013-10-19T15:35:02.860 に答える