#はじめに
VC間通信にNotificationCenterを使って、データを一緒に送信する方法を調べたので、
備忘録として書いときます。
#NotificationCenterとuserInfoの使い方
####使用する通知を作成
まずは通知で使用する通知名をextensionで拡張します。
extension Notification.Name {
static let hogeName = Notification.Name("hogeName")
}
####通知送信
任意のタイミングで通知を送信します。
SenderVC
NotificationCenter.default.post(name: .hogeName, object: nil, userInfo: ["fugaData": "hogehoge"])
この際に userInfo: ["fugaData": "hogehoge"])
の部分で任意のデータを一緒に送信することができます。
####通知受信
受信側のviewDidLoadなどで通知の登録を行ってください。
受信した際に実行する処理をselectorで指定します。
ReciverVC
override func viewDidLoad() {
super.viewDidLoad()
//受信設定
NotificationCenter.default.addObserver(self, selector: #selector(piyoFunc(notification:)), name: .hogeName, object: nil)
}
@objc func piyoFunc(notification: NSNotification?) {
let data = notification?.userInfo!["fugaData"]
print(data) // hogehoge が出力される
}
#さいごに
NitificationCenterはいろんなイベントのやりとりができるので便利です。
parentVCやchildVCを取得してからデータを送信したりしている方は、
ぜひともこの方法を試してみてください!