当我从一个视图控制器移动到另一个时,第一个控制器上的开关会自行重置,并且不会保留其状态。我如何使它在查看其他控制器后返回到它时保存其状态?以及如何在关闭应用程序后使其保存状态。我已经查看了各种stackOverflow问题和回复以及苹果文档,但似乎什么都不起作用。
下面是我为具有开关的View Controller创建的类。
class Days: UIViewController {
@IBOutlet weak var switchButton: UISwitch!
var switchState = true
let switchKey = "switchState"
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func saveSwitchPressed(sender:AnyObject) {
if self.switchButton.on {
self.switchState = true
NSUserDefaults.standardUserDefaults().setBool(self.switchState, forKey: switchKey)
NSUserDefaults.standardUserDefaults().synchronize()
println(NSUserDefaults.standardUserDefaults().boolForKey(switchKey))
} else {
self.switchState = false
NSUserDefaults.standardUserDefaults().setBool(self.switchState, forKey: switchKey)
NSUserDefaults.standardUserDefaults().synchronize()
println(NSUserDefaults.standardUserDefaults().boolForKey(switchKey))
}
}
}
我是Swift和Xcode的初学者。提前感谢您的时间和帮助:)
发布于 2015-02-17 13:32:38
由于您正在同步交换机的on/off状态,因此您可以在viewWillAppear:
或viewDidAppear:
上将交换机的状态设置为存储在NSUserDefaults
中的值
一些类似的东西
override func viewWillAppear(animated: Bool) {
self.switchButton.on = NSUserDefaults.standardUserDefaults().boolForKey(switchKey)
}
https://stackoverflow.com/questions/28555255
复制相似问题