Я пытаюсь добиться, когда обновляется объект, сообщение Notificationcenter Post должно сработать и получить уведомление у наблюдателя. Но в моем случае сообщение с уведомлением находится в одном контроллере, а наблюдатель - в другом контроллере.
Вот мой код для сообщения уведомления от webViewController:
if let jsonData = jsonString.data(using: .utf8) {
do {
let decoder = JSONDecoder()
let mainObject = try decoder.decode(DynamicTabsModel.self, from: jsonData)
print("tab model:::", mainObject)
let dataDict:[AnyObject] = mainObject.tabInfo.tabList as [AnyObject]
print("data object for tab", dataDict)
NotificationCenter.default.post(name: Notification.Name("updateParentViewController"), object: mainObject)
} catch {
print(error.localizedDescription)
}
}
Вот код для CreateCardViewController, где я получаю Наблюдатель уведомлений:
NotificationCenter.default.addObserver(self, selector: #selector(self.updateParentViewController(_:)), name: Notification.Name(rawValue: "updateParentViewController"), object: nil)
@objc func updateParentViewController(_ notification: NSNotification){
if let receivedData = notification.object as? DynamicTabsModel {
//use received data
print("recieved back data:::", receivedData)
for d in receivedData.tabInfo.tabList {
print(d.label )
self.tabMenuAry.append(d.label)
}
initCarbonKitTab()
NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: "updateParentViewController"), object: nil)
print("tab menu array::", self.tabMenuAry)
}
}
Мой вопрос: всякий раз, когда происходят изменения в объектной модели, он должен вызывать метод публикации уведомлений и получать наблюдателя.
Я пытался вызвать наблюдателя уведомлений в viewdidload, viewdidappear и viewwillappear. Ничего не получил.
Любая помощь высоко ценится пожалуйста ...