若想在兩個Swift檔案中互相傳遞訊號
這裡有一個簡單的方法,就是加入observer去做監聽,當有post發出時就會收到!
步驟一:
在一個Swift檔案中加入observer,其中要設定的是這個監聽器要聽哪一個訊號,以及聽到訊號要觸發的函式。(注意!這個函式的引數為notification:)
NotificationCenter.default.addObserver(self, selector: #selector(想觸發的函式(notification:)), name: NSNotification.Name("監聽訊號名稱") , object: nil)
步驟二:
在另一個Swift檔案中加入post,其中要設定的就是訊號
NotificationCenter.default.post(name: Notification.Name("監聽訊號名稱"), object: nil)
說明:
也就是當post被執行的時候,原先加入的observer就會聽到post,進而做出該觸發函式!
簡易範例:
observer.swift
NotificationCenter.default.addObserver(self, selector: #selector(isDataGet(notification:)), name: NSNotification.Name("GET_DATA") , object: nil) @objc func isDataGet(notification: NSNotification) { print("isdataget!") }
post.swift
NotificationCenter.default.post(name: Notification.Name("GET_DATA"), object: nil)
說明:
一旦post.swift執行到post那一行,他就會發出GET_DATA
此時相對應的observer就會做出指定觸發函式isDataGet
我是Andy Huang,大家下次見!
沒有留言: