首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Settings.bundle Swift 5

Settings.bundle Swift 5
EN

Stack Overflow用户
提问于 2020-09-15 11:27:11
回答 1查看 111关注 0票数 0

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

代码语言:javascript
复制
        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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-20 10:57:28

将此代码添加到ViewController中:

代码语言:javascript
复制
        NotificationCenter.default.addObserver(self, selector: #selector(settingChanged(notification:)), name: UserDefaults.didChangeNotification, object: nil)


    }

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

代码语言:javascript
复制
    @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

这将在“应用程序设置”中更新设置时更新应用程序

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63894625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档