: (, , ) iOS 13, API iOS 13.
(API NSNotificationCenter).
, , , . - .
( userInfo, , userInfo, - Swift).
NotificationsName+Extensions.swift:
import Foundation
extension Notification.Name {
static let darkModeEnabled = Notification.Name("com.yourApp.notifications.darkModeEnabled")
static let darkModeDisabled = Notification.Name("com.yourApp.notifications.darkModeDisabled")
}
"" :
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(darkModeEnabled(_:)), name: .darkModeEnabled, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(darkModeDisabled(_:)), name: .darkModeDisabled, object: nil)
}
deinit, :
deinit {
NotificationCenter.default.removeObserver(self, name: .darkModeEnabled, object: nil)
NotificationCenter.default.removeObserver(self, name: .darkModeDisabled, object: nil)
}
"" darkModeEnabled(_:) darkModeDisabled(_:):
@objc private func darkModeEnabled(_ notification: Notification) {
}
@objc private func darkModeDisabled(_ notification: Notification) {
}
, :
@IBAction func darkModeSwitched(_ sender: Any) {
if darkModeSwitchOutlet.isOn == true {
userDefaults.set(true, forKey: "darkModeEnabled")
NotificationCenter.default.post(name: .darkModeEnabled, object: nil)
} else {
userDefaults.set(false, forKey: "darkModeEnabled")
NotificationCenter.default.post(name: .darkModeDisabled, object: nil)
}
}
, "" , . , , , , , UserDefaults . , NSNotificationCenter -, , , .
NSNotificationCenter.
. , OP. ( "", "" , , ).