我的UIswitch值为nil,即使它打开也必须关闭swich然后再打开以设置值

时间:2019-04-10 08:14:45

标签: swift uiswitch

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

WscriptSchell.SendKeys "randomNumber = Int( (999999 - 100000 + 1) * Rnd + 100000 

2 个答案:

答案 0 :(得分:1)

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

library(data.table)
setDT(dt)
dt[, cr := rleid(criterium)][
    (criterium), goal := rleid(cr), by=.(group)]

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

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

在Switch的动作中进行更改

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

答案 1 :(得分:0)

您可以尝试直接使用isOn属性的值。这有帮助吗?另外,我建议您为处理程序使用更好的名称。

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

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

    @IBAction func colorChanged(_ sender: UISwitch)
    {
        FirstViewController.FirstColor = sender.isOn
    }
}