6

iOS でストーリーボードを使用しています。最初の画面はログイン画面です。ユーザーがログアウトするとき、またはログアウトされるとき、そのユーザーは深い階層の画面にいる可能性があります。

例: ログイン ビュー コントローラー => モーダル ビュー コントローラー => タブ バー コントローラー => ナビゲーション コントローラー => ビュー コントローラー => ビュー コントローラー。一番上のView Controllerから一番下のView Controllerまでずっと戻りたいです。

編集:これはビュー階層の図です:ここに画像の説明を入力

ありがとう!

4

3 に答える 3

5

動作しているように見える UIViewControllers のカテゴリを作成しました。

- (void) popToInitialViewController
{
    UIViewController *vc;
    if (self.navigationController != nil) {
        vc = self.navigationController;
        [self.navigationController popToRootViewControllerAnimated:NO];
        [vc popToInitialViewController];
    }
    else if (self.tabBarController != nil) {
        vc = self.tabBarController;
        [vc popToInitialViewController];
    }
    else if (self.presentingViewController != nil) {
        vc = self;

        while (vc.presentingViewController != nil)
            vc = vc.presentingViewController;

        [vc dismissModalViewControllerAnimated:NO];

        [vc popToInitialViewController];
    }
}

コメントをお待ちしております:)

于 2012-10-22T19:38:02.193 に答える
2

これは、すべてがナビゲーションスタックにプッシュされたと仮定して機能するはずです。

[self.navigationController popToRootViewControllerAnimated:YES];
于 2012-10-22T17:00:00.187 に答える