我刚刚在设置菜单的单元格中添加了一个UISwitch,当我离开视图时,我遇到了关闭开关状态的问题。
我尝试添加此代码:
override func viewDidAppear(animated: Bool) {
if autoAdjust == true {
dupSwitch.on = true
} else {
dupSwitch.on = false
}
}
虽然这确实有效,但它并不理想,因为视图出现时状态之间会有明显的跳跃。
如何确保开关在离开视图时保持在用户离开的位置?
答案 0 :(得分:2)
如何确保开关在离开视图时保持在用户离开的位置?
将交换机的当前状态存储在模型类中(在模型 - 视图 - 控制器意义上)。 autoAdjust
变量的值应保存在一个不会随视图卸载的对象中 - 即在模型类中。
当视图即将出现时,读取开关的当前状态,并将dupSwitch.on
设置为模型中存储的状态。
注意:为避免显示切换过程,请将逻辑从viewDidAppear
移至viewWillAppear
。您的代码也可以简化 - 您不需要条件:
override func viewWillAppear(animated: Bool) {
dupSwitch.on = autoAdjust
}