0

アプリの起動時に、資格情報 (IP@、ユーザー名、パスワードなど) を入力するためのモーダル ビュー コントローラーがあります。ユーザーがログインすると、他のUIViewControllerなどを開くことができる多くのUIViewControllerを開くことができます...これらのビューコントローラーは、ナビゲーションコントローラー、タブバー、モーダルにすることができます....

次に、ユーザーはアプリケーションをバックグラウンドのままにしておくことができます。次に、ユーザーはメール アプリを開き、添付ファイルを含むメールを開いてアプリに移動できます。ユーザーが私のアプリを選択して添付ファイルを開くとき。

アプリがフォアグラウンドに移動したら、階層の特定のビューコントローラー (ログイン画面の後に最初に開かれたビューコントローラー) に移動する必要があります。

私が使用しようとしたこの最初の ViewController にアプリを移動するには、dismissViewControllerAnimated:completion:

しかし、成功しなければ、まだ表示されている階層からのビューが残っています。

これを行う方法はありますか?よろしく、

セバスチャン。

4

2 に答える 2

1

すべてのView Controllerが1つのNavigation Controllerにあり、スタックにプッシュされている場合は、単純にまたはのいずれpopToRootViewControllerAnimated:かを使用できますpopToViewController:animated:

それ以外の場合は、最初の Modal ビュー コントローラーを閉じてから、必要なビュー コントローラーを元に戻してください。

于 2013-12-04T22:23:22.117 に答える
0

この小さなコードで解決策を見つけました

    UINavigationController* navc = (UINavigationController*)viewController.topViewController;
if (navc != Nil) {
    if (navc.presentedViewController != Nil) {
        [navc dismissViewControllerAnimated:FALSE completion:Nil];
    }
        [navc popToRootViewControllerAnimated:TRUE];
}

最後は複雑ではありませんでした!

セバスチャン。

于 2013-12-07T17:52:51.467 に答える