Ios NSUserDefaults切换开关不';多任务处理后不要坚持
这是一个tvOS应用程序。我希望我的应用程序的背景根据使用NSUserDefaults的设置中的切换开关进行更改。切换开关称为“白色背景”,标识符为“白色背景”,默认值为“否” 在我的当前代码中,当用户单击主页、导航到“设置”并点击切换按钮时,它就会工作。但是,如果用户双击home(主页)按钮(将应用程序背景接地),通过task switcher导航到“设置”,然后通过task switcher导航回应用程序,则设置将恢复 这是我的密码:Ios NSUserDefaults切换开关不';多任务处理后不要坚持,ios,swift,nsuserdefaults,tvos,Ios,Swift,Nsuserdefaults,Tvos,这是一个tvOS应用程序。我希望我的应用程序的背景根据使用NSUserDefaults的设置中的切换开关进行更改。切换开关称为“白色背景”,标识符为“白色背景”,默认值为“否” 在我的当前代码中,当用户单击主页、导航到“设置”并点击切换按钮时,它就会工作。但是,如果用户双击home(主页)按钮(将应用程序背景接地),通过task switcher导航到“设置”,然后通过task switcher导航回应用程序,则设置将恢复 这是我的密码: class ViewController: UIView
class ViewController: UIViewController {
func registerDefaultSettings() {
var appDefaults = ["whiteBackground": false]
NSUserDefaults.standardUserDefaults().registerDefaults(appDefaults)
}
override func viewDidLoad() {
super.viewDidLoad()
registerDefaultSettings()
uiSettings()
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.uiSettings), name: UIApplicationWillEnterForegroundNotification, object: nil)
}
func uiSettings() {
let defaults = NSUserDefaults.standardUserDefaults()
if defaults.boolForKey("whiteBackground") {
view.backgroundColor = UIColor.whiteColor()
} else {
view.backgroundColor = UIColor.blackColor()
}
}
不确定这是否是一个简单的修复
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
uiSettings()
}
不确定这是否是一个简单的修复
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
uiSettings()
}
除非我弄错了,
setBool(true,…)
和setBool(false,…)
应该是另一种方法。您注册默认值的方法毫无意义。注册让appDefaults=[“whiteBackground”:false]
没有其他内容,没有阅读,也从来没有valueForKey:
@MartinR我相信我的方法是正确的,因为我希望激活切换,意味着背景是白色的。真的,我不认为这些是必要的,我只是为了尝试所有东西才把它们包括进去。@vadian我已经简化了。我担心registerDefaults会覆盖用户选择的设置,这就是我这样做的原因(即,如果未设置值,则仅将“whiteBackground”默认值注册为false
)。顾名思义,默认值会一直被考虑,直到用户第一次覆盖为止。从今以后,它就被忽略了。不要在注册前读取值。再一次,这是胡说八道。除非我弄错了,否则请阅读,setBool(true,…)
和setBool(false,…)
应该是另一种方式。您注册默认值的方法是无意义的。注册让appDefaults=[“whiteBackground”:false]
没有其他内容,没有阅读,也从来没有valueForKey:
@MartinR我相信我的方法是正确的,因为我希望激活切换,意味着背景是白色的。真的,我不认为这些是必要的,我只是为了尝试所有东西才把它们包括进去。@vadian我已经简化了。我担心registerDefaults会覆盖用户选择的设置,这就是我这样做的原因(即,如果未设置值,则仅将“whiteBackground”默认值注册为false
)。顾名思义,默认值会一直被考虑,直到用户第一次覆盖为止。从今以后,它就被忽略了。不要在注册前读取值。再一次,这是胡说八道。不幸的是,请阅读,不是那么简单,但我很感激你的回答。我开始认为这只是NSUserDefaults的本质。在更改切换和任务切换到我的应用程序之间,设置可能不会写入存储。不幸的是,没有那么简单,但我很欣赏答案。我开始认为这只是NSUserDefaults的本质。在更改切换和任务切换到“我的应用程序”之间,设置可能不会写入存储器。