如何保留UISwitch状态

时间:2014-08-22 00:15:33

标签: swift uiswitch

我刚刚在设置菜单的单元格中添加了一个UISwitch,当我离开视图时,我遇到了关闭开关状态的问题。

我尝试添加此代码:

    override func viewDidAppear(animated: Bool) {
    if autoAdjust == true {
        dupSwitch.on = true
    } else {
        dupSwitch.on = false
    }
}

虽然这确实有效,但它并不理想,因为视图出现时状态之间会有明显的跳跃。

如何确保开关在离开视图时保持在用户离开的位置?

1 个答案:

答案 0 :(得分:2)

  

如何确保开关在离开视图时保持在用户离开的位置?

将交换机的当前状态存储在模型类中(在模型 - 视图 - 控制器意义上)。 autoAdjust变量的值应保存在一个不会随视图卸载的对象中 - 即在模型类中。

当视图即将出现时,读取开关的当前状态,并将dupSwitch.on设置为模型中存储的状态。

注意:为避免显示切换过程,请将逻辑从viewDidAppear移至viewWillAppear。您的代码也可以简化 - 您不需要条件:

override func viewWillAppear(animated: Bool) {
    dupSwitch.on = autoAdjust
}