Когда я перехожу от одного контроллера вида к другому, переключатель первого контроллера сбрасывает себя и не сохраняет свое состояние. Как я могу сохранить его состояние, когда вернусь к нему после просмотра других контроллеров? И как мне сохранить его состояние после закрытия приложения. Я рассмотрел различные вопросы и ответы в stackoverflow, а также документацию на яблоки, но ничего не работает.Как сохранить состояние UISwitch при смене ViewControllers?
Вот мой класс для контроллера просмотра, который имеет переключатель.
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. Заранее спасибо за ваше время и помочь :)
Вы сохранили состояние в NSUserDefaults, но при загрузке вашего представления вы извлекли значение из NSUserDefaults и обновили коммутатор на основе этого значения? – Zhang
Вам не нужно сохранять свое состояние вообще, если вы возвращаетесь к тому же экземпляру. Вернетесь ли вы к тому же экземпляру (как вы вернетесь)? Вы не должны использовать NSUserDefaults для этой цели, если вам не нужны данные для сохранения между запусками вашего приложения. – rdelmar