我在ViewControllerSettings中定义了如下用户默认值public let kAlertsKey = "ALERTS_KEY"
并使用以下代码通过开关和ìf
语句对其进行修改
if switchAlerts.isOn{
UserDefaults.standard.removeObject(forKey: kAlertsKey)
UserDefaults.standard.set("On", forKey: kAlertsKey)
UserDefaults.standard.synchronize()
print("on")
}else{
UserDefaults.standard.removeObject(forKey: kAlertsKey)
UserDefaults.standard.set("Off", forKey: kAlertsKey)
UserDefaults.standard.synchronize()
print("off")
}
我希望将状态On
或Off
共享到6个不同的ViewController:
- 视图控制器GUI
- 查看控制器创建
- 查看控制器列表
- ...
我的想法是创建一个枚举,例如:
enum ToggleSwitch: Int{
case On, Off
var isActive: Bool{
switch self {
case .On:
return true
case .Off:
return false
}
}
}
但我不确定如何遵循或我需要在我的枚举情况下返回什么,以及我在每个ViewController中的哪里调用它。
提前感谢!
1条答案
按热度按时间xhv8bpkk1#
我将向
UserDefaults
添加一个简单的扩展:请注意,这里使用的是实际的
Bool
值,而不是使用特殊的字符串值。另外请注意,在设置新值之前,不需要删除旧值。您可以在项目中的任何位置使用属性。
例如:
或:
仅供参考-
synchronize()
已明确标记为过时,不应使用。