gpt4 book ai didi

swift - 我的 UIswitch 值为空,即使它打开我也必须关闭然后再打开才能设置值

转载 作者:行者123 更新时间:2023-11-28 13:44:21 24 4
gpt4 key购买 nike

使用 UIswitch 设置值我的变量是静态的,因为我在不同的 swift 文件中使用它们所以当我运行程序并单击注册按钮时,它会打印 nil即使它打开(按钮保持关闭应用程序时的状态)我必须切换它然后单击注册按钮才能打印可选(真)我该怎么做才能让用户不必在每次打开应用程序时或在应用程序打开但值为 nil 时显示我也只是想让它打印真/假(我如何解包)

class FirstViewController: UIViewController, UITextFieldDelegate {
static var FirstColor: Bool!

@IBAction func home(_ sender: RoundButton) {
}
@IBAction func Registration(_ sender: RoundButton) {
print(FirstViewController.FirstColor)
}

@IBAction func ColorSwitch(_ sender: UISwitch) {
if sender.isOn{
FirstViewController.FirstColor = true
}else{FirstViewController.FirstColor = false }
}
}

最佳答案

如果您想保留开关状态,您需要将其存储在 UserDefaults 中。不要在 FirstViewController 中添加静态属性。使用计算属性创建一个像这样的单独类

class Color {
static var firstColor: Bool {
get { return UserDefaults.standard.bool(forKey: "firstColor") }
set { UserDefaults.standard.set(newValue, forKey: "firstColor") }
}
}

在 FirstViewController 的 viewDidLoad 中获取最后状态并更新

override func viewDidLoad() {
super.viewDidLoad()
mySwitch.isOn = Color.firstColor
}

在Switch的 Action 中改变它

@IBAction func ColorSwitch(_ sender: UISwitch) {
sender.isOn = !sender.isOn
Color.firstColor = sender.isOn
}

关于swift - 我的 UIswitch 值为空,即使它打开我也必须关闭然后再打开才能设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55607790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com