This question already has answers here:
Prevent dismissal of UIAlertController
(5 个回答)
6年前关闭。
我正在尝试使用 iOS 8 中引入的新
现在,当我单击“完成”按钮时,控件进入回调方法,然后即使我没有任何声明来解除警报,警报也会被解除。这是默认行为吗?如果是,我如何确保在某些情况下警报保留在屏幕上(取决于我的条件)?我在这里错过了什么吗?
我真的很感激任何关于这方面的帮助。
(5 个回答)
6年前关闭。
我正在尝试使用 iOS 8 中引入的新
UIAlertController
。除了 UIAlertAction
总是最终在其回调中解除警报 Controller 这一事实外,一切都很好。以下是我的代码:let alert = UIAlertController(title: "New Group", message: "Enter Group name", preferredStyle: UIAlertControllerStyle.Alert);
alert.addTextFieldWithConfigurationHandler({ [weak self] (nameField: UITextField!) in
nameField.becomeFirstResponder();
nameField.delegate = self;
return;
})
alert.addAction(UIAlertAction(title: "Done", style: .Default, handler: { action in
println("Done Entering");
}));
alert.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: nil));
self.presentViewController(alert, animated: true, completion: nil);
现在,当我单击“完成”按钮时,控件进入回调方法,然后即使我没有任何声明来解除警报,警报也会被解除。这是默认行为吗?如果是,我如何确保在某些情况下警报保留在屏幕上(取决于我的条件)?我在这里错过了什么吗?
我真的很感激任何关于这方面的帮助。
最佳答案
是的,警报按钮 总是 解除警报,否则无法配置它们。如果您想要这种行为,则必须编写自己的警报。我写了 SDCAlertView ,它看起来非常像一个普通的警报,但有一些附加功能,包括防止在点击按钮时解除警报。
但是,它尚未使用 UIAlertController
API,并且在 iOS 8 上看起来与 UIAlertController
警报略有不同(大多数用户不会注意到)。
编辑: 现在支持类似 UIAlertController
的 API。
关于swift - UIAlertAction 在其回调中解除 UIAlertController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25672224/
10-10 21:33