所以我有我的主视图控制器,我有我的设置视图控制器。当我进入设置并翻转开关并返回主设备时,我的设置视图控制器将恢复其默认设置并与名称相同。如何在应用程序打开时保存数据,而不是恢复到默认值?
由于
答案 0 :(得分:0)
您可以将您的按钮状态存储在userdefault
中这是swift 3的例子:
你可以在actioin中获取按钮状态以获得valuechanged然后你可以将其存储在
中 UserDefaults.standard.set(false, forKey: "buttonState")
let buttonState = UserDefaults.standard.bool(forKey: "buttonState")
if buttonState == true {
}
UserDefaults.standard.synchronize()
答案 1 :(得分:0)
1)当出现视图时,调用设置屏幕从NSUserDefaults获取数据,然后将数据填充到选项中。
2)当用户更改内容时,请更新UserDefaults并且不要忘记同步它。
答案 2 :(得分:0)
我更喜欢使用代理,而不是每次离开设置页面时都检查用户默认值。
protocol SettingsViewControllerDelegate: class {
func settingsDidChange()
}
class SettingsViewController: UIViewController {
weak var delegate: SettingsViewControllerDelegate?
func someSettingChanged(){
let defaults = UserDefaults.standard
//... get the new settings
defaults.set(newSettingsValue, forKey: "settingsKey")
defaults.synchronize()
delegate?.settingsDidChange()
}
}
class MainViewController: UIViewController {
func showSettingsVC(){
let settingsViewController = //Initialization method
settingsViewController.delegate = self
self.show(settingsViewController, sender: self)
}
}
extension MainViewController: SettingsViewControllerDelegate{
func settingsDidChange() {
let defaults = UserDefaults.standard
if let settingsValue = defaults.value(forKey: "settingsKey"){
//// do the appropriate changes
}
}
}