Я использую swift 5 на Xcode 11.0, пытаюсь передать userInfo из view-controller-A в view-controller-B, и я уже сделал сообщение центра уведомлений в view-controller-A и вот код:
let uid = response["session-id"] as? String
NotificationCenter.default.post(
name: NSNotification.Name("didReceiveSession"),
object: nil,
userInfo: ["uid" : uid!]
)
А в view-controller-B я зарегистрировал уведомление и добавил наблюдателя вот так:
NotificationCenter.default.addObserver(
self,
selector: #selector(self.getSessionId),
name: NSNotification.Name("didReceiveSession"),
object: nil
)
И вот getSessionId :
@objc func getSessionId(_ notification: Notification)
{
if let data = notification.userInfo as? [String: String]
{
self.session_Id = data["uid"]
}
}
Я испробовал множество обходных путей, таких как:
1- Изменить имя: NSNotification.Name ("didReceiveSession") на имя: NSNotification.Name (rawValue: "didReceiveSession") в обоих контроллерах представления
2- Создать экземпляр в view-controller-A:
2.1- share = view-controller-A ()
2.2- Изменить объект: ноль на объект: view-controller-A.share в addObserver (view-controller-B)
3- Изменить селектор в view-controller-B с селектор: #selector (self.getSessionId) на сель ector: #selector (getSessionId (_:))
Но, к сожалению, все попытки не сработали. Я не могу понять, что не так.