Я пытаюсь создать вид выбора даты для повторного использования. Когда пользователь нажимает кнопку «DOB», отображается символ выбора даты. Я хочу передать обратно ViewController выбранную дату.
При попытке реализовать метод делегата для достижения этого я получаю «неожиданно найденный ноль» в строке ниже:
делегат.myModularDidFinish (контроллер: сам, дата: "(datePicker.date)")
Как я могу использовать делегата для возврата даты, выбранной в пользовательском представлении, в ViewController, в котором он представлен?
ViewController:
class ViewController2: UIViewController, MyModalDelegate2 {
@IBAction func dobButton(_ sender: UIButton) {
let allViewsInXibArray = Bundle.main.loadNibNamed("MyModalVC2", owner: self, options: nil)
let dobView = allViewsInXibArray?.first as! UIView
self.view.addSubview(dobView)
}
func myModularDidFinish(controller: MyModalVC2, date: String) {
print(date)
}
}
Пользовательский класс xib:
protocol MyModalDelegate2 {
func myModularDidFinish(controller: MyModalVC2, date: String)
}
class MyModalVC2: UIView {
var delegate: MyModalDelegate2! = nil
@IBOutlet weak var datePicker: UIDatePicker!
@IBAction func datePicker(_ sender: Any) {
delegate.myModularDidFinish( controller: self, date: "\(datePicker.date)")
}
}