我正在尝试实现委托协议,但是我显然做错了。我正在使用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)
}
}
我正在尝试从日期选择器中获取结果。根据豆荚,各种方法如下:
// 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)
我的问题是我不确定如何执行此操作,将不胜感激。
我正在尝试实现委托协议,但是我显然做错了。我正在使用一个cocoapod:https://cocoapods.org/pods/SMDatePicker,我试图与它联系...
您从没有设置delegate
的SMDatePicker
。另外,您有两种再现形式didPickDate
。 Swift中正确的语法是datePicker(_:didPickDate:)
,其中第二个参数是Date
,而不是NSDate
。
首先,在CalculatorViewController
中添加一个引用情节提要/ XIB中的日期选择器的插座。