在UIAlertController之后重新加载视图

时间:2017-02-15 13:50:45

标签: ios swift xcode swift3 uialertcontroller

我有一个带有电话号码字段的注册屏幕。 如果用户键入的电话号码太短,我会显示UIAlertController。 在她取消警报后,用户无法再次发送她的电话号码,因为点按了发送按钮。 有没有办法在解除警报时重新加载视图以使按钮未被打开? 感谢

    func present_alert(title:String, content : String){
    let myAlert = UIAlertController(title:title, message:content, preferredStyle:UIAlertControllerStyle.alert)
    let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler:nil)
    myAlert.addAction(okAction)
    self.present(myAlert, animated:true)
}

4 个答案:

答案 0 :(得分:2)

按钮点击的主要原因是您停用了按钮sender.isEnabled = false,当再次显示警报时启用按钮,肯定有效addyourbuttonName.isEnabled = true

如果要清除当前文本字段值,请使用yourtextfield.text = ""

let alertController = UIAlertController(title: “Simple”, message: “Simple alertView demo with Cancel and Ok.”, preferredStyle: UIAlertControllerStyle.alert)

let okAction = UIAlertAction(title: “OK”, style: UIAlertActionStyle.default) { (result : UIAlertAction) -> Void in
print(“OK”)
 yourtextfield.text = ""
 yourtextfield.becomeFirstResponder()
 addyourbuttonName.isEnabled = true
}


alertController.addAction(okAction)
self.present(alertController, animated: true, completion: nil)

答案 1 :(得分:0)

func present_alert(title:String, content:String, button:UIButton){
    let myAlert = UIAlertController(title:title, message:content, preferredStyle:UIAlertControllerStyle.alert)
    let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler:nil)
    myAlert.addAction(okAction)
    self.present(myAlert, animated:true){
        button.isEnabled = true
    }
}

答案 2 :(得分:0)

据我了解您的问题,问题是您收到参数“isEnabled”的按钮 false 值。要解决这个问题,只需在块中添加最后一个字符串:

buttonName.isEnabled = true

答案 3 :(得分:0)

单击UIAlertAction(取消或确定)后,可以在该确定或取消方法中添加一些功能。在该方法的最后一步,添加viewWillAppear(true)方法。然后,UIViewController自动刷新。