1

このような関数呼び出しでアラートビューをローカルに表示しました...

        UIAlertView *alert_local = [[UIAlertView alloc]
                                    initWithTitle:nil
                                    message:@"Are you sure want to discard what you have recorded so far?"
                                    delegate:self cancelButtonTitle:@"Yes"
                                    otherButtonTitles:@"No", nil];
        alert_local.tag = 4;
        [alert_local show];

しかし、私はそれに対して YES か NO で答えていません。そして、アラートを表示しているビューを外部からポップしたのですが、アラートビューが残っていたので、アラートビューをivarにして対処しました。これは正しいアプローチですか?またはこの種のシーケンスを処理する他の方法はありますか? 親ビューがポップされた後、アラート ビューが残るのはなぜですか?

4

2 に答える 2

3

はい、View Controller がアラート ビューを表示する場合、アラートを削除する責任があります。

ユーザーによってトリガーされていない何らかのイベントによってView Controllerが消える可能性がある場合、アラートビューが閉じられていることを確認する必要があります。したがって、ivarに保存するのが適切なようです。ビューがなくなったときにビューを保持する必要がないため、これには弱い ivar を使用します。

于 2013-02-27T12:19:54.330 に答える
0

以下の行を追加してこれを試してくださいviewWillDisappear

 [alert_local dismissWithClickedButtonIndex:alert_local.cancelButtonIndex animated:YES];    

注:- UIAlertViewin .h ファイルを宣言します

于 2013-02-27T12:08:16.587 に答える