参考ページの劣化コピーの備忘録です。
詳しくは参考ページを見てもらったほうが良いかと。(-人-)
以下参考ページ。
iOSTraining/3-4_Notification-NotificationCenter.md at master · mixi-inc/iOSTraining · GitHub
[Swift3.1] NotificationCenterを使ってViewController間でイベント通知を送る – Qiita
NotificationCenterを使って通知のやり取りをしたい。
☆まずは通知を受け取りたい側にaddObserverの登録
viewDidload等で登録をしておきます。
override func viewDidLoad() { super.viewDidLoad() /// NotificationCenterに登録する NotificationCenter.default.addObserver(self, //オブザーバとして登録 selector: #selector(catchNotification(notification:)), //通知を受け取った時に投げるメソッド name: Notification.Name("myNotificationName"), //通知の名前 object: nil) }
通知を受け取って動作するメソッドcatchNotificationを実装
func catchNotification(notification: Notification) -> Void { print("Catch notification") // 通知を受け取ったことにより行いたい処理を書く }
☆通知を送りたい側のVCに通知をPostする処理を書く。
通知を送りたい箇所でPost
// Notification通知を送る(通知を送りたい箇所に書く。例えば何らかのボタンを押した際の処理の中等) NotificationCenter.default.post(name: Notification.Name("myNotificationName"), object: nil)
多分これで通知が送られるはず。/(^o^)\
参考サイトではNotificationCenter.defaultをインスタンスにしてたり、
Extentionでの拡張により .myNotificationName というのを使っていたりしますが、
僕の頭ではよく理解できませんでした。/(^o^)\
多分あれだ、いっぺんに通知の名前を変更する時に打ち間違いや、やり残しをなくすためだな。/(^o^)\