UIAlertAction在其回调中解散UIAlertController

时间:2014-09-04 18:05:13

标签: swift ios8 uialertcontroller

我正在尝试使用iOS 8中引入的新UIAlertController。除了UIAlertAction总是最终在其回调中解除警报控制器这一事实外,一切都很有效。以下是我的代码:

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);

现在,当我点击"完成"按钮,控件进入回调方法然后警报被解雇,即使我没有任何声明来解除警报。这种行为是默认的吗?如果是,我怎样才能确保在某些情况下警报停留在屏幕上(取决于我的条件)?我在这里错过了什么吗?

我真的很感激任何帮助。

1 个答案:

答案 0 :(得分:10)

是的,警报按钮始终取消警报,否则无法配置它们。如果您想要这种行为,您必须编写自己的警报。我写了SDCAlertView,看起来非常像普通的警报,但有一些额外的功能,包括在点击按钮时防止取消警报。

但是,它还没有使用UIAlertController API,它在iOS 8上看起来有点不同(大多数用户都不会注意到),而不是UIAlertController警报。< / p>

编辑:它现在支持类似UIAlertController的API。