0

アプリで初期化を実行している状況があります。最初の起動時に、同意する/同意しないボタンを選択して EULA を提示する必要があります。[同意する] を選択すると、ユーザー名とパスワードの入力を求めるモーダル ビューが表示されます。これはすべてうまくいきます。問題は、ユーザー名とパスワードが確認された後、モーダル ビューが閉じられることです。アプリのベース テーブル ビューではなく、まだ EULA ビューが画面に表示されたままです。EULA viewcontroller コードで次のことを行います。

- (IBAction)didAgree:(id)sender {
    LoginViewController *lvc=[[[LoginViewController alloc] init] autorelease];
    lvc.modalTransitionStyle=UIModalTransitionStyleCoverVertical;
    [self presentModalViewController:lvc animated:YES];
    [self.view removeFromSuperview];
}

最後の行 (removeFromSuperview) を presentModal 呼び出しの前に移動すると、もちろん、ログイン ビューは表示されません。

ログインビューコントローラーコードでは、ログインボタンが押された後にこれがあります:

[[self parentViewController] dismissModalViewControllerAnimated:YES];
[[self parentViewController].view removeFromSuperview];

このコードを実行すると、モーダル ビューが消え、テーブル ビューが一時的に表示されてから、画面に EULA ビューが残ったまま消えます。2 番目のステートメントをコメント アウトすると、テーブル ビューが表示されません。

私は信じられないほど明白な何かが欠けていることを知っていますが、途方に暮れていて、かなり長い間これにこだわっています。

4

1 に答える 1

2

問題はここにあると思います:

[self presentModalViewController:lvc animated:YES];

主にselfそこに。これは、ログイン画面selfをEULA-ViewControllerからモーダルに表示することを意味します。現在、EULA画面を削除することはできません。

最初にログイン画面を表示することをお勧めします。すべてがグレー表示されているか、まったく表示されていない可能性があり、そこからEULAをモーダルに表示します。

于 2011-01-20T15:07:15.427 に答える