如何从外部弹出父视图时关闭UIAlertView?

时间:2013-02-27 12:04:33

标签: iphone ios cocoa-touch uialertview popviewcontroller

我在像这样的函数调用中本地显示了一个警报视图......

        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来处理它。这是正确的方法吗?或任何其他方式来处理这种序列?为什么警报视图在弹出父视图后仍然存在?

2 个答案:

答案 0 :(得分:3)

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

视图控制器可以通过某些不是由用户触发的事件消失,它必须确保警报视图被解除。因此将其存放在伊瓦尔中似乎是合适的。我使用弱ivar,因为没有必要在视图消失时保留视图。

答案 1 :(得分:0)

通过在viewWillDisappear

中添加以下行来尝试此操作
 [alert_local dismissWithClickedButtonIndex:alert_local.cancelButtonIndex animated:YES];    

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