2

私は TabBarApplication を実行しており、ログイン画面は ModalViewController で表示されます。ログイン画面には新規登録ボタンがあり、アカウントの種類を選択し、フォームに個人情報を入力します。アカウントタイプ画面と個人情報フォームにも戻るボタンがあります。

A - ログイン画面。B - アカウントの種類。C - 個人情報フォーム。

ユーザーは次のように進みます: A->B->C

ユーザーがアカウントの種類 (B) に戻ってきた場合、私はそれを却下して完了です。

ユーザーが個人情報 (C) を押すと、C が閉じられ、B ビューが表示されます。

しかし問題は、ユーザーが正常に登録された場合です。CとBを同時に閉じてA(ログイン画面)に行く必要がありますが、できません。

B は C の親であるため、両方を却下することはできません。

このようにして、新しいビューを呼び出します。

ScreenUpdateAccountOuter *registerscreen = [[ScreenUpdateAccountOuter alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:registerscreen animated:YES];

そして、このようにして私はそれらを却下します:

[self.parentViewController dismissModalViewControllerAnimated:YES];

いくつかの助けに感謝します。

ありがとうございました。

4

4 に答える 4

2

You need to use delegate methods.

I hope you have heard about Protocols and Delegates in iOS. To know more about that, see here

Download this application and see how I have implemented.

于 2012-04-05T10:39:10.380 に答える
1

これは擬似コードです。

C: bool を作成し、yes に設定します。

B:

- (void)viewDidAppear
{
    if (myBool == YES)
    {
    [self.parentViewController dismissModalViewControllerAnimated:YES];
    }
}
于 2012-04-07T09:20:13.860 に答える
0

C にいて、A に戻りたい場合は、B で DismissModalViewController を呼び出すと、C がアニメートされ、その下に A が表示されます。これは、このように複数のモーダルを積み重ねた場合の動作です。

于 2013-06-02T19:28:38.127 に答える
-1

これを使用してみてください:

[self.navigationController popToRootViewControllerAnimated:YES];

それが役に立てば幸い

編集

ずさんな解決策かもしれませんがBOOL、2 番目のコントローラーにプロパティを追加してみてください。そしてviewWillAppear、チェックを入れます。の場合はYES、そのコントローラーを閉じてください。3 番目のビューで 2 番目のビューのプロパティを作成し、2 番目から 3 番目のビューに切り替える前に、そのプロパティを自己に設定します。次に、登録が完了したらBOOL、2番目のコントローラーでそれを に設定しYESます。その後viewWillAppear、2 番目のビューの を呼び出す必要がありBOOLますYES

あなたがそれを理解したことを願っています:)

于 2012-04-05T09:32:53.073 に答える