如何为由故事板初始化的开关按钮设置默认布尔值

时间:2017-03-22 18:34:24

标签: ios swift3 boolean uiswitch

我遇到有关开关按钮默认值的问题。如果未使用开关按钮,Xcode会给出错误“在展开可选值时意外发现nil”。如果未使用切换按钮,我需要将默认值设置为true或false。我找到了一些关于这个问题的文章,但它们对我没有用。

我的切换按钮通过故事板初始化:

@IBAction func FußballPreferenzSwitch(_ sender: UISwitch) {

    if (sender.isOn == true) {

        FußballPreferenz = "Ja"
    }else {

        FußballPreferenz = "Nein"
    }
}

以下解决方案对我没有用,因为我没有密钥,或者至少我不知道密钥是什么。

在applicationDidFinishLaunching中,他们建议编写以下代码:

let userDefaults = UserDefaults.standard
let defaultValues : [String : Any] = ["key" : false]
userDefaults.register(defaults: defaultValues)

如何更改以下代码以便在我的目的中使用它? 或者还有其他方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

制作IBOutlet您的广告,然后点击viewDidloadviewDidAppear(根据您的要求)

if uiSwitch.isOn {
   FußballPreferenz = "Ja"
} else {
   FußballPreferenz = "Nein"
}

这样可以确保无论故事板上设置的默认值是否都反映在didload / didappear上的变量上,即使用户没有更改switch的值。

答案 1 :(得分:0)

只是因为有人在这里(我是新手)正在搜索一个片段:

在代码顶部(类定义)添加:

@IBOutlet weak var switchImageBeingDisplayed: UISwitch!

并进一步定义按钮:

@IBAction func switchImageBeingDisplayedChanged(_ sender: Any) {
    if switchLockLanguages.isOn {
        image1.isHidden = true}
    else {
        image2.isHidden = false
    }
}