Ios 如何在Swift 5中刷新文本字段数据

Ios 如何在Swift 5中刷新文本字段数据,ios,swift,textfield,lifecycle,Ios,Swift,Textfield,Lifecycle,我一直试图通过按下提交按钮来计算用户输入的闰年。如果没有值,则显示警报窗口,但在点击警报窗口上的“确定”按钮后,无论我向文本字段提供何种输入,每次都会显示相同的警报窗口。(简单地说:在警报窗口之后,我无法继续使用该应用程序)我尝试了辞职FirstResponder方法,视图将在“创建警报”方法之后出现方法,但所有方法均无效 @IBAction func submitButtonPressed(_ sender: UIButton) { if let text = textField.te

我一直试图通过按下提交按钮来计算用户输入的闰年。如果没有值,则显示警报窗口,但在点击警报窗口上的“确定”按钮后,无论我向文本字段提供何种输入,每次都会显示相同的警报窗口。(简单地说:在警报窗口之后,我无法继续使用该应用程序)我尝试了
辞职FirstResponder
方法,
视图将在“创建警报”方法之后出现
方法,但所有方法均无效

@IBAction func submitButtonPressed(_ sender: UIButton) {
    if let text = textField.text {
        if textField.text != nil {
            self.createAlert(titleField: "Error", messageField: "Please make sure you entered a year before tapping the submit button")
        } else {
            DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
                self.leapYear.calculateYear(year: Int(text)!, imageView: self.statusView)
            }
        }
    }
}

由于
textField.text
永远不会为零,并且您将警报代码包装在块内,当textField有值时触发该块,请使用

if textField.text == "" { 
        self.createAlert(titleField: "Error", messageField: "Please make sure you entered a year before tapping the submit button") 
}else {
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.5){ 
        self.leapYear.calculateYear(year: Int(self.textField.text!)!, imageView: self.statusView) 
    }
}

毕竟,这是相当直截了当的