如何保留 UISwitch 状态
Posted
技术标签:
【中文标题】如何保留 UISwitch 状态【英文标题】:How to retain UISwitch state 【发布时间】:2014-08-22 00:15:32 【问题描述】:我刚刚在我的设置菜单的一个单元格中添加了一个 UISwitch,当我离开视图时,我遇到了开关状态恢复为打开的问题。
我已尝试添加此代码:
override func viewDidAppear(animated: Bool)
if autoAdjust == true
dupSwitch.on = true
else
dupSwitch.on = false
虽然这确实有效,但并不理想,因为当视图出现时,状态之间存在明显的跳跃。
当用户离开视图时,如何确保开关保持在用户离开的任何位置?
【问题讨论】:
你使用什么样的tableView内容?静态单元还是动态原型?如果是后者,您应该在tableView:cellForRowAtIndexPath:
中声明dupSwitch.on = autoAdjust
。
【参考方案1】:
当用户离开视图时,如何确保开关保持在用户离开的任何位置?
将开关的当前状态存储在模型类中(在模型-视图-控制器意义上)。 autoAdjust
变量的值应保存在不会随视图一起卸载的对象中 - 即在您的模型类中。
当视图即将出现时,读取开关的当前状态,并将dupSwitch.on
设置为模型中存储的状态。
注意:为避免显示切换过程,请将您的逻辑从viewDidAppear
移至viewWillAppear
。您的代码也可以简化 - 您不需要条件:
override func viewWillAppear(animated: Bool)
dupSwitch.on = autoAdjust
【讨论】:
由于我一直在处理其他事情,所以花了我一段时间来查看您的回复,但您解决了我的问题,非常感谢!以上是关于如何保留 UISwitch 状态的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SWIFT 3 中的另一个 ViewController 检查 UISwitch 的状态?
如何在Objective-C中以编程方式而不是由用户控制UISwitch的状态?