显示弹出窗口后删除UITextField文本

时间:2018-08-21 08:08:33

标签: ios swift uitextfield

我面临以下问题:我的视图中有几个UITextField,其中一个(有效期)上有一个按钮,该按钮打开带有UIDatePicker的弹出窗口。回来后,我看到我的文本字段为空。 找到附加的屏幕录像。 另外,这是我使用的一段代码:

func showDatePickerPopUp() {
    let dateVC = NavigationHelper.shared.getViewController("datePickerID") as! DatePickerPopUpViewController
    dateVC.modalPresentationStyle = .overCurrentContext
    present(dateVC, animated: false, completion: nil)
}

然后我通过按钮操作调用此方法:

@IBAction func expiryDateButtonTapped(_ sender: UIButton) {
    showDatePickerPopUp()
}

当到期日期成为第一响应者时:

if textField == cardNumberTextField {
    nameOnCardTextField.becomeFirstResponder()
} else if textField == nameOnCardTextField {
    expiryDateTextField.becomeFirstResponder()
    showDatePickerPopUp()
}

这是它的工作方式:Screen Recording

我该如何解决这个问题?

更新: 这是“完成”按钮的操作代码:

@IBAction func doneButtonTapped(_ sender: UIButton) {
   dateFormatter.dateFormat = "MM/yyyy"
   let dateString = dateFormatter.string(from: datePicker.date)
   let vc = NavigationHelper.shared.getViewController("changeCard") as!    ChangeCardViewController
   vc.expiryDate = dateString
   present(vc, animated: false, completion: nil)
}

1 个答案:

答案 0 :(得分:1)

您应该在完成按钮的操作后关闭ChangeCardViewController。当您再次展示控制器时,它将重新加载ChangeCardViewController的所有视图。在doneButtonTapped中编写以下代码:

@IBAction func doneButtonTapped(_ sender: UIButton) {

    dismiss(animated: true, completion: nil)

}