【发布时间】:2020-06-09 02:23:04
【问题描述】:
我正在尝试实现委托协议,但显然我做错了。我正在使用 cocoapod:https://cocoapods.org/pods/SMDatePicker,我曾尝试联系开发人员寻求帮助,但到目前为止他从未回复我。
添加 pod 并安装后,我将 .swift 文件添加到我的项目中,并添加了以下方法,它可以很好地显示日期选择器:
class CalculatorViewController: UIViewController, SMDatePickerDelegate {
@IBOutlet weak var lblDate: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Initialize
let tap = UITapGestureRecognizer(target: self, action: #selector(CalculatorViewController.tapFunction))
lblDate.isUserInteractionEnabled = true
lblDate.addGestureRecognizer(tap)
// Set label date
let dt = Date()
lblDate.text = dt.asString(style: .short)
}
@IBAction func datePicker(picker: SMDatePicker, didPickDate date: NSDate) {
let picked = date as Date
lblDate.text = picked.asString(style: .short)
}
@IBAction func tapFunction(sender: UITapGestureRecognizer) {
var picker: SMDatePicker = SMDatePicker()
picker.pickerMode = .date
picker.showPickerInView(view, animated: true)
print("tap working")
}
func datePicker(_ picker: SMDatePicker, didPickDate date: Date) {
let picked = date
print(date)
}
}
我正在尝试从日期选择器中获取结果。根据pod,各种方法如下:
// Initialize
var picker: SMDatePicker = SMDatePicker()
// Set delegate
picker.delegate = self
You have SMDatePickerDelegate protocol to handle picker’s events. Here are list:
datePickerWillAppear(picker: SMDatePicker)
datePickerDidAppear(picker: SMDatePicker)
datePicker(picker: SMDatePicker, didPickDate date: NSDate)
datePickerDidCancel(picker: SMDatePicker)
datePickerWillDisappear(picker: SMDatePicker)
datePickerDidDisappear(picker: SMDatePicker)
我的问题是我不知道如何实现这一点,任何帮助将不胜感激。
【问题讨论】:
标签: swift delegates cocoapods protocols