UIAlertViewDelegate
协议声明如下:
// Called when we cancel a view (eg. the user clicks the Home button). This is not called when the user clicks the cancel button.
// If not defined in the delegate, we simulate a click in the cancel button
- (void)alertViewCancel:(UIAlertView *)alertView;
但是,我显示了UIAlertView
,当我现在点击模拟器中的主页按钮时,方法alertViewCancel:
不会被调用。请注意,当我触摸AlertView上的按钮时,会调用alertView:clickedButtonAtIndex:
委托方法,以便正确连接委托。
这是苹果方面的错误还是我,或者模拟器?
修改:
我目前通过收听UIApplicationWillResignActiveNotification
通知来解决此问题,我将执行以下操作以解除AlertView:
[self.currentAlert dismissWithClickedButtonIndex:-1 animated:NO];
[self.currentAlert release];
self.currentAlert = nil;
答案 0 :(得分:3)
当系统实际取消您的警报视图时调用它。当您的应用程序进入后台时,您的警报视图不会被取消,除非您的应用程序被flotsam进程驱逐,当您再次成为前台时,您的警报视图将再次弹出。我认为,虽然我不确定,如果flotsam杀死你的进程,你将把这个委托调用作为拆解序列的一部分。
在这一点上,文档可能有点误导。曾经是主页按钮按下取消警报的情况,但情况并非总是如此。