显示弹出窗口后删除 UITextField 文本
UITextField text is removed after showing pop up
我面临以下问题:我的视图中有多个 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
我该如何解决这个问题?
更新:
这是 "Done" 按钮操作代码:
@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)
}
您应该关闭 ChangeCardViewController
完成按钮操作。当您再次呈现控制器时,它将重新加载 ChangeCardViewController
的所有视图。在 doneButtonTapped
:
中写入以下代码
@IBAction func doneButtonTapped(_ sender: UIButton) {
dismiss(animated: true, completion: nil)
}
我面临以下问题:我的视图中有多个 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
我该如何解决这个问题?
更新: 这是 "Done" 按钮操作代码:
@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)
}
您应该关闭 ChangeCardViewController
完成按钮操作。当您再次呈现控制器时,它将重新加载 ChangeCardViewController
的所有视图。在 doneButtonTapped
:
@IBAction func doneButtonTapped(_ sender: UIButton) {
dismiss(animated: true, completion: nil)
}