swift - UIAlertAction 在其回调中关闭 UIAlertController

标签 swift ios8 uialertcontroller

<分区>

我正在尝试使用 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-like API。

关于swift - UIAlertAction 在其回调中关闭 UIAlertController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25672224/

相关文章:

ios - 如何检查在 UIAlertController 中创建的 UITextField 的文本?

快速从 popUp 中删除 tableViewCell

ios - 无法通过GPS在ios8中获取经度和纬度

swift - 如何在不覆盖自然后退按钮的情况下添加左栏按钮?

ios - 在 TextField iOS 中按退格键/删除键

ios - UICollectionView 使用 UICollectionViewFlowLayout 删除分节符

iOS7 与 Xcode 6 的兼容性

ios - 使用 Xcode 6 的 iOS 8 模拟器下的应用程序性能缓慢

ios - 当 ViewController 不在窗口层次结构中时不显示警报

ios - 循环中的快速延迟