首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在更改ViewControllers时保持UISwitch状态?

如何在更改ViewControllers时保持UISwitch状态?
EN

Stack Overflow用户
提问于 2015-02-17 13:26:31
回答 1查看 8.3K关注 0票数 2

当我从一个视图控制器移动到另一个时,第一个控制器上的开关会自行重置,并且不会保留其状态。我如何使它在查看其他控制器后返回到它时保存其状态?以及如何在关闭应用程序后使其保存状态。我已经查看了各种stackOverflow问题和回复以及苹果文档,但似乎什么都不起作用。

下面是我为具有开关的View Controller创建的类。

代码语言:javascript
复制
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的初学者。提前感谢您的时间和帮助:)

EN

回答 1

Stack Overflow用户

发布于 2015-02-17 13:32:38

由于您正在同步交换机的on/off状态,因此您可以在viewWillAppear:viewDidAppear:上将交换机的状态设置为存储在NSUserDefaults中的值

一些类似的东西

代码语言:javascript
复制
override func viewWillAppear(animated: Bool) {
  self.switchButton.on = NSUserDefaults.standardUserDefaults().boolForKey(switchKey)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28555255

复制
相关文章

相似问题

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