我有一个UIAlertController
,我正在检查用户输入。当用户未键入文本字段时,我添加的“确定操作”按钮应该向用户发出警告,而不是关闭警报视图。
我处理警告但警报视图自动关闭。 如何禁用自动关闭?
感谢。
我的代码:
var alert = UIAlertController(title: "change name and phone number", message: nil, preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default,
handler: { action in
//Add a comment to this line
let nameField: UITextField = alert.textFields![0] as UITextField
let phoneField: UITextField = alert.textFields![1] as UITextField
let name = nameField.text
let phone = phoneField.text
if name.length == 0 {
JLToast.makeText("Please enter name").show()
} else if phone.length == 0 {
JLToast.makeText("Please enter phone number").show()
} else {
self.sendSupportInfo(nameField.text, phone: phoneField.text)
}
println("name:: \(nameField.text), phone: \(phoneField.text)")
}))
alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Default, handler: nil))
alert.addTextFieldWithConfigurationHandler { (textField) -> Void in
textField.placeholder = "name"
}
alert.addTextFieldWithConfigurationHandler { (textField) -> Void in
textField.placeholder = "0544-444444"
textField.keyboardType = UIKeyboardType.PhonePad
}
self.presentViewController(alert, animated: true, completion: nil)
答案 0 :(得分:0)
你做不到。 其他选项是,您只能禁用UIAlertAction。 相反,您可能想要创建自己的自定义对话框。
正如官方文件所说:
子类 UIAlertController类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不得修改。
答案 1 :(得分:0)
您可以创建新的UI窗口并使窗口级别高于警报级别,然后将警报显示在新的UI窗口上。