IBOutlets в вашем EditEventController
равны нулю до тех пор, пока вы на самом деле не выполните pushViewController
, поэтому вы видите, что они не устанавливаются.
Что я бы порекомендовал сделать, это добавить event
(или originalEvent
) для вашего EditEventController
, а затем в вашей функции EditEventController
viewWillAppear
затем установите текстовые свойства торговых точек.
То есть в вашем EditEventController
:
var originalEvent : Event? // or whatever you've named this structure/object
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
guard let originalEvent = originalEvent else {
return
}
self.dateTextfield.text = originalEvent.dateTitle
self.titleTextfield.text = originalEvent.eventTitle
self.repeatTextfield.text = originalEvent.repeatTime
}
Затем в вашем UITableViewRowAction
:
let edit = UITableViewRowAction(style: .default, title: "Edit") { (action, indexPath) in
let eec = EditEventController()
eec.originalEvent = self.events[indexPath.row]
self.navigationController?.pushViewController(eec, animated: true)
}
Кроме того, обратите внимание, что я сделал экземпляр EditEventController
строчными? Начинать со строчной буквы - это стандартный способ присвоения имени переменной в Swift .
Надеюсь, это поможет!