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