Я могу дать вам два решения:
- Вы можете создать свое собственное уведомление.
Прежде всего при ответном действии вы должны опубликовать уведомление с sendData .
NotificationCenter.default.post(name: NSNotification.Name(rawValue: UpdateCalendarNotification), object: sendingData)
Далее на главном контроллере представления с представлением календаря необходимо зарегистрировать уведомление для имени «UpdateCalendarNotification».
func registerNotifications() {
NotificationCenter.default.addObserver(self,
selector: #selector(updateCalendarView(_:)),
name: NSNotification.Name(rawValue: "UpdateCalendarNotification"),
object: nil)
}
А на селекторе updateCalendarView(_:)
вы должны обработать изменения для календаря.
@objc
func updateCalendarView(_ notification: NSNotification) {
if let sendingData = notification.object as? String {
/// Update calendar view
}
}
- Вторым решением является публичный блок для вас "следующий контроллер".
На следующем контроллере представления вы должны добавить этот обработчик:
var onDismiss: ((String?) -> Void)?
и в методе backAction
вы должны передать свои данные
onDismiss?(sendingData)
В вашем главном контроллере представления вы должны реализовать этот блок следующим образом:
let next = self.storyboard?.instantiateViewController(withIdentifier: "NextVC") as! NextVC
next.onDismiss = { [weak self] (sendingData) in
self?.calendarView.receiveValue = sendingData
}
self.present(next, animated: true, completion: nil)
Надеюсь, это вам поможет)