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

How to set a default boolean for a switch button that was initialized by storyboard

我遇到了关于开关按钮默认值的问题。如果不使用开关按钮,Xcode 给出错误"unexpectedly found nil while unwrapping an optional value"。如果不使用切换按钮,我需要将默认值设置为 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)

我需要如何更改以下代码才能将其用于我的目的? 还是有其他方法可以解决该问题?

制作一个 IBOutlet 开关,然后打开 viewDidloadviewDidAppear(无论您需要什么)

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

这确保即使用户没有更改 switch 的值,故事板上设置的任何默认值都会反映在 didload/didappear 上的变量中。

只是为了防止其他人(我是新手)正在搜索片段:

在您的代码顶部(Class 定义)添加:

@IBOutlet weak var switchImageBeingDisplayed: UISwitch!

并进一步向下定义按钮:

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