月別アーカイブ: 2018年5月

【Swift4】NotificationCenterの備忘録。

参考ページの劣化コピーの備忘録です。
詳しくは参考ページを見てもらったほうが良いかと。(-人-)

以下参考ページ。
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^)\