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];

但我没有对此做出回答是或否。在一个序列中,我弹出了从外部显示警报的视图,但警报视图仍然存在,我通过将警报视图设置为 ivar 来处理它。这是正确的方法吗?或任何其他方式来处理这种序列?为什么弹出其父视图后警报视图仍然存在?

4

2 回答 2

3

是的,如果视图控制器显示警报视图,它负责删除警报。

如果视图控制器可能因用户未触发的某些事件而消失,则它必须确保警报视图被解除。因此将其存储在 ivar 中似乎是合适的。我为此使用了一个弱 ivar,因为当它消失时没有必要保留视图。

于 2013-02-27T12:19:54.330 回答
0

通过添加下面的行来试试这个viewWillDisappear

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

注意:-UIAlertView在 .h 文件中声明您的

于 2013-02-27T12:08:16.587 回答