如何解决在Swift中设置日期选择器和文本字段时激活按钮
但是,在我已实现的其他功能中,如果使用单例对象弹出导航,并且在返回导航值时将其保存,如果对按钮进行了标签更改检查,则该按钮未激活,因为它是与单例重复,或者即使仅设置了电话号码也是如此。碰巧按钮被激活了。
因此,当日期选择器本身更改值时,是否有办法捕获标签而不是更改标签?
import UIKit
class ThirdViewController: UIViewController {
lazy var dateFormatter: DateFormatter = {
let date = DateFormatter()
date.dateStyle = .medium
date.timeStyle = .none
return date
}()
@IBOutlet weak var dateLabel: UILabel!
@IBOutlet weak var numberTextField: UITextField!
@IBOutlet weak var datePicker: UIDatePicker!
@IBOutlet weak var signUpButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
numberTextField.addTarget(self,action: #selector(editingChanged(_:)),for: .editingChanged)
numberTextField.text = Userinformation.userinformationSingleton.userNumber
dateLabel.text = Userinformation.userinformationSingleton.dateLabel
}
@objc func editingChanged(_ textField: UITextField) {
if textField.text?.count == 1 {
if textField.text?.first == " " {
textField.text = ""
return
}
}
toggleButton()
}
func toggleButton() {
guard
let textField = numberTextField.text,!textField.isEmpty,dateLabel.text != ""
else {
signUpButton.isEnabled = false
return
}
signUpButton.isEnabled = true
}
@IBAction func datePickerValueChanged(_ sender: UIDatePicker) {
dateLabel.text = dateFormatter.string(from: sender.date)
toggleButton()
}
@IBAction func cancelButton(_ sender: UIButton) {
self.dismiss(animated: true,completion: nil)
Userinformation.userinformationSingleton.userID = nil
Userinformation.userinformationSingleton.userNumber = nil
Userinformation.userinformationSingleton.dateLabel = nil
}
@IBAction func tappedPrevIoUsButton(_ sender: UIButton) {
self.navigationController?.popViewController(animated: true)
}
@IBAction func tappedSignUpButton(_ sender: UIButton) {
self.dismiss(animated: true,completion: nil)
}
}
https://i.stack.imgur.com/a1GVc.png
感谢阅读!
解决方法
解决了问题!
func toggleButton() {
guard
let textField = numberTextField.text,!textField.isEmpty,let label = dateLabel.text,!label.isEmpty
else {
signUpButton.isEnabled = false
return
}
signUpButton.isEnabled = true
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。