通过点击外部或取消按钮在 iOS 中关闭警报视图

Posted

技术标签:

【中文标题】通过点击外部或取消按钮在 iOS 中关闭警报视图【英文标题】:Dismiss alert view in iOS by tapping outside or cancel button 【发布时间】:2015-11-25 04:32:57 【问题描述】:

我遇到了一个非常奇怪的问题,我想在用户点击取消按钮或其他任何地方时关闭 UIAlertView。我已经阅读了几乎所有的帖子,但找不到解决我问题的答案,你们中的任何人都知道如何做到这一点吗?请指导我完成这些步骤,我将非常感谢。

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:label.text
                                                message:label1.text
                                               delegate:self
                                      cancelButtonTitle:@"ཕྱིར་འཐེན།"
                                      otherButtonTitles:@"ཉེ་ཆར།",@"དགའ་མོས།",@"ཉེ་ཆར་གཙང་བཟོ།",@"དགའ་མོས་གཙང་བཟོ།",nil];
[alert show];

【问题讨论】:

【参考方案1】:

试试这个代码

// Add gesture
UITapGestureRecognizer *tapOnView = [[UITapGestureRecognizer alloc] initWithTarget:self
                                                                            action:@selector(dismissAlert)];
[alert addGestureRecognizer:tapOnView];

然后你可以调用一个函数来解除你的警报

【讨论】:

【参考方案2】:

调用 touchesEnded 方法。当用户点击屏幕上的任何其他位置时,它会帮助您关闭 alertView

-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event 
    [self.yourAlert dismissWithClickedButtonIndex:0 animated:YES];

记得创建 yourAlert 作为强参考

【讨论】:

我相信这样如果你点击是而不是取消,你会点击是和取消两个事件......

以上是关于通过点击外部或取消按钮在 iOS 中关闭警报视图的主要内容,如果未能解决你的问题,请参考以下文章

iOS 应用程序在 swift 中关闭视图后冻结

快速警报视图(iOS8),单击确定和取消按钮,点击该按钮

如何从视图模型中关闭 Catel 框架数据窗口

在 iOS 7 SDK 中关闭 UIAlertview 后 UIView 没有响应

我需要弄清楚如何在 iOS 8 中关闭徽章、声音和警报

在 C# 中的窗口窗体应用程序中关闭窗口时发出警报 [重复]