Settings.bundle Swift 5



我在swift 5中使用settings.bundle,希望观察默认设置的变化,并在不重新启动的情况下更新应用程序-最好的方法是什么?

UserDefaults.standard.register(defaults: ["String" : "Any"])
let defaultValues1 = ["btn1_name": "Name your Btn 1"]
UserDefaults.standard.register(defaults: defaultValues1)
let btn1value = ["btn1_onoff": true]
UserDefaults.standard.register(defaults: btn1value)

let defaultValues2 = ["btn2_name": "Name your Btn 2"]
UserDefaults.standard.register(defaults: defaultValues2)
let btn2value = ["btn2_onoff": true]
UserDefaults.standard.register(defaults: btn2value)

将其添加到ViewController:

NotificationCenter.default.addObserver(self, selector: #selector(settingChanged(notification:)), name: UserDefaults.didChangeNotification, object: nil)

}

然后使用以下内容创建一个@objc函数:

@objc func settingChanged(notification: NSNotification) {
let userDefaults = UserDefaults.standard

let btn1settings = userDefaults.bool(forKey: "btn1_onoff")

if !btn1settings {
btn1.isHidden = true
btn1_label.isHidden = true
btn1_count.isHidden = true

}
else {
btn1.isHidden = false
btn1_label.isHidden = false
btn1_count.isHidden = false
}
let btn1name = userDefaults.string(forKey: "btn1_name")
btn1_label.text = btn1name

这将在"应用程序"中更新设置时更新应用程序;应用程序设置";

最新更新