快速面对“记住我”功能的问题

时间:2020-12-22 06:47:29

标签: ios swift

我尝试了以下代码来执行“记住我”功能。它工作正常。但是,在这里我面临一个问题。如果我选择了一个写有两个值的复选框并进入了另一个屏幕。当我更改两个值时,需要选中和取消选中复选框。之后,它是注册表的存储。我这里需要。 不需要每次都勾选和取消勾选复选框。有谁知道我应该在这里犯什么错误和遗漏什么?

@IBAction func rememberMeAction(_ sender: UIButton) {        
if checkBoxBtn.isSelected == false {

         UserDefaults.standard.set(loginID.text!, forKey: "firstvalue")
         UserDefaults.standard.set(loginPWD.text!, forKey: "secondvalue")
         checkBoxBtn.setImage(UIImage(named: "checked.png"), for: .normal)
         UserDefaults.standard.set(true, forKey: "checkBoxStatus")
         checkBoxBtn.isSelected = true
}
else {
        UserDefaults.standard.set(false, forKey: "firstvalue")
        UserDefaults.standard.set(false, forKey: "secondvalue")
        UserDefaults.standard.synchronize()
            
        checkBoxBtn.setImage(UIImage(named: "unchecked.png"), for: .normal)
        UserDefaults.standard.set(false, forKey: "checkBoxStatus")
        checkBoxBtn.isSelected = false
   }
}

1 个答案:

答案 0 :(得分:0)

您问题中的代码是对事件的响应。

我想这是绑定到 Switch 元素的 Value Changed 事件。所以发生的事情是,当用户点击开关时,值发生变化(即从关闭到打开)然后调用您的代码,切换开关选择(从打开到关闭)。

您不应尝试在与同一 Switch 相关的事件中更改 Switch 的选定状态

相关问题