声明委托:
weak var delegate: ChangeDatePickerValueDelegate?
创建协议protocol ChangeDatePickerValueDelegate: AnyObject {
func convertDate(dateOnPicker: Date) -> String
func datePickerChanged(text: String, cell: UICollectionViewCell)
}
当datePicker的值发生变化时触发该函数
@objc
func handleDatePicker(sender: UIDatePicker) {
dateTextField.text = delegate?.convertDate(dateOnPicker: datePicker.date)
print(dateTextField.text)
}
执行后,此部分不开始执行
extension AddContactsController: ChangeDatePickerValueDelegate {
func convertDate(dateOnPicker: Date) -> String {
return (presenter?.dateFormatter(datePicker: dateOnPicker))!
}
为什么没有执行,如何修复它?
您没有在任何地方将委托分配给AddContactsController
,因此您需要有对象的引用(您在那里定义的类weak var delegate
),并像这样做:
datePicker.delegate = self
在代码的某个地方,比如AddContactsController
的viewDidLoad()
假设你的对象名为datePicker。