Swift中通知中心(NotificationCenter)的使用示例
前言
本文主要介紹了關(guān)于Swift通知中心(NotificationCenter)使用的相關(guān)內(nèi)容,NotificationCenter是Swift中一個(gè)調(diào)度消息通知的類(lèi),采用單例模式設(shè)計(jì),實(shí)現(xiàn)傳值、回調(diào)等作用。
通知的作用還是挺強(qiáng)大的,對(duì)于兩個(gè)不相關(guān)的控制器之間,要進(jìn)行信息的傳遞,使用通知是個(gè)不錯(cuò)的選擇,下面話(huà)不多說(shuō)了,來(lái)一起看看詳細(xì)的使用方法吧。
1、添加通知
/// 通知名 let notificationName = "XMNotification" /// 自定義通知 NotificationCenter.default.addObserver(self, selector: #selector(notificationAction), name: NSNotification.Name(rawValue: notificationName), object: nil)
2、設(shè)置監(jiān)聽(tīng)方法
/// 接受到通知后的方法回調(diào) @objc private func notificationAction(noti: Notification) { /// 獲取鍵盤(pán)的位置/高度/時(shí)間間隔... print(noti) }
3、在通知用完后及時(shí)銷(xiāo)毀
/// 析構(gòu)函數(shù).類(lèi)似于OC的 dealloc deinit { /// 移除通知 NotificationCenter.default.removeObserver(self) }
4、發(fā)送通知
/// 發(fā)送簡(jiǎn)單數(shù)據(jù) NotificationCenter.default.post(name: NSNotification.Name.init(rawValue: "XMNotification"), object: "Hello 2017") /// 發(fā)送額外數(shù)據(jù) let info = ["name":"Eric","age":21] as [String : Any] NotificationCenter.default.post(name: NSNotification.Name.init(rawValue: "XMNotification"), object: "GoodBye 2016", userInfo: info)
通知在系統(tǒng)中的運(yùn)用,監(jiān)聽(tīng)鍵盤(pán)的變動(dòng)
/// 通知中心監(jiān)聽(tīng)鍵盤(pán)的變化 #selector(notificationAction), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)
有關(guān)鍵盤(pán)的其他通知名稱(chēng)
public static let UIKeyboardWillShow: NSNotification.Name /// 鍵盤(pán)顯示完畢 public static let UIKeyboardDidShow: NSNotification.Name /// 鍵盤(pán)將要隱藏 public static let UIKeyboardWillHide: NSNotification.Name /// 鍵盤(pán)隱藏完畢 public static let UIKeyboardDidHide: NSNotification.Name /// 鍵盤(pán)將要改變自身的frame public static let UIKeyboardWillChangeFrame: NSNotification.Name /// 鍵盤(pán)frame改變完成 public static let UIKeyboardDidChangeFrame: NSNotification.Name
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Swift中風(fēng)味各異的類(lèi)型擦除實(shí)例詳解
你也許曾聽(tīng)過(guò)類(lèi)型擦除,甚至也使用過(guò)標(biāo)準(zhǔn)庫(kù)提供的類(lèi)型擦除類(lèi)型如 AnySequence,下面這篇文章主要給大家介紹了關(guān)于Swift中風(fēng)味各異的類(lèi)型擦除的相關(guān)資料,需要的朋友可以參考下2022-04-04在 Swift 中測(cè)試 UIAlertController的方法
這篇文章主要介紹了在 Swift 中測(cè)試 UIAlertController的方法的,需要的朋友可以參考下2015-10-10Swift實(shí)現(xiàn)簡(jiǎn)單計(jì)算器
這篇文章主要為大家詳細(xì)介紹了Swift實(shí)現(xiàn)簡(jiǎn)單計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01如何在Swift?中使用?async?let?并發(fā)運(yùn)行后臺(tái)任務(wù)
Swift?異步編程是一種編寫(xiě)允許某些任務(wù)并發(fā)運(yùn)行而不是按順序運(yùn)行的代碼的方法,這篇文章主要介紹了在Swift中使用async?let并發(fā)運(yùn)行后臺(tái)任務(wù),需要的朋友可以參考下2023-06-06Swift算法實(shí)現(xiàn)逐字翻轉(zhuǎn)字符串的方法示例
大家都知道翻轉(zhuǎn)字符串在字符串算法中算是比較常見(jiàn)的,下面這篇文章主要介紹了Swift算法實(shí)現(xiàn)逐字翻轉(zhuǎn)字符串的方法,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-03-03Swift 基本數(shù)據(jù)類(lèi)型詳解總結(jié)
在我們使用任何程序語(yǔ)言編程時(shí),需要使用各種數(shù)據(jù)類(lèi)型來(lái)存儲(chǔ)不同的信息。變量的數(shù)據(jù)類(lèi)型決定了如何將代表這些值的位存儲(chǔ)到計(jì)算機(jī)的內(nèi)存中。在聲明變量時(shí)也可指定它的數(shù)據(jù)類(lèi)型。所有變量都具有數(shù)據(jù)類(lèi)型,以決定能夠存儲(chǔ)哪種數(shù)據(jù)2021-11-11Swift中的Access Control權(quán)限控制介紹
這篇文章主要介紹了Swift中的Access Control權(quán)限控制介紹,本文講解了private、internal、public三個(gè)關(guān)鍵字的使用,需要的朋友可以參考下2015-05-05