【问题标题】:How to save UIButton IBAction to UserDefaults with Codable in my static checklist, swift?如何在我的静态清单中使用 Codable 将 UIButton IBAction 快速保存到 UserDefaults?
【发布时间】:2021-03-07 19:45:23
【问题描述】:

当用户单击情节提要 tableViewController 上的清单中的复选框 (UIButton) 时,如何保存布尔值?

尝试了很多不同的教程,但我没有得到它,因为我有一个布尔值而不是一个字符串??? :S

清单应用程序已完成并且正在运行,但是在选中复选框时它没有得到保存。取消选中时,它也应该被保存。

我要保存的 300 个盒子之一的代码:

    @IBAction func check1002Tapped(_ sender: UIButton) {
    if sender.isSelected {sender.isSelected = false }
    else {sender.isSelected = true }
}

【问题讨论】:

    标签: ios swift uibutton codable ibaction


    【解决方案1】:

    点击按钮后插入保存逻辑代码。

    @IBAction func check1002Tapped(_ sender: UIButton) {
        if sender.isSelected {
            sender.isSelected = false
        }
        else {
            sender.isSelected = true
        }
        UserDefaults.standard.setValue(sender.isSelected, forKey: "check1002Selected")
    }
        
    

    并在按钮出现之前加载按钮状态。

    override func viewDidLoad() {
        super.viewDidLoad()
        button.isSelected = UserDefaults.standard.bool(forKey: "check1002Selected")
    }
    

    【讨论】:

    • 检查括号
    • 遇到错误,要添加更多代码我是一个真正的初学者 :)
    • thanx,viewDidLoad 仍然出错,错误:在范围内找不到“按钮”。
    • 再次感谢我现在让它工作:将 IBOutlet 连接到出现“按钮”错误的按钮。 :D
    【解决方案2】:

    对于像我这样的其他初学者:

     UserDefaults.standard.setValue(sender.isSelected, forKey: "check1002Selected")
    

    键可以是您选择的任何单词,它似乎是在此处创建的。

    button.isSelected = UserDefaults.standard.bool(forKey: "check1002Selected")
    

    “按钮”文本所在的位置是您为要保存的按钮编写的 @IBOutlet 名称。 :D 为我工作,快乐快乐的初学者 :D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 2017-07-22
      相关资源
      最近更新 更多