ios - 在 swift 中使用 userdefaults 保存复选框按钮状态

标签 ios swift checkbox uibutton nsuserdefaults

View Controller 有两个复选框按钮 1.检查输入 2. checkout

我将 checkIN [复选框按钮] 状态保存在用户默认值中,工作正常,但是当我在 Nextviewcontroller 中使用该 userdefaults 键时,它总是显示 true 而不是遇到 false block 这是代码

在主视图 Controller 中

@IBAction func CheckInButtonClick(_ sender: UIButton) {


        for senderdata in checkINOUT {
            senderdata.setImage( UIImage(named:"uncheck1"), for: .normal)
            print("uncheck is called")

        }


        sender.setImage(UIImage(named:"check1"), for: .normal)
         prefs.set(true, forKey: "check")
    prefs.synchronize()

    }

下一个 View Controller

   override func viewDidLoad() {
        super.viewDidLoad()
{        

 let prefs:UserDefaults = UserDefaults.standard
  if  prefs.bool(forKey: "check") ==true
        {
        print("select")

        } else {

            print("unselect")
        }

 }     

复选框选择它的执行主 block ,如果取消选择执行其他 block

如何克服这个我做错的问题

最佳答案

您没有将 userDefault 值设置为 false。您只是将它设置为 true,这就是为什么它总是 true。顺便说一句,无需使用 synchronize() 而是将您的代码更改为以下内容:

主视图 Controller :

@IBAction func CheckInButtonClick(_ sender: UIButton) {
    for senderdata in checkINOUT {
        senderdata.setImage( UIImage(named:"uncheck1"), for: .normal)
        print("uncheck is called")
    }
    sender.setImage(UIImage(named:"check1"), for: .normal)
    UserDefaults.standard.set(true, forKey: "check")
}

下一个 View Controller :

override func viewDidLoad() {
    super.viewDidLoad()       

    if UserDefaults.standard.bool(forKey: "check") {
        print("select")
    } else {
        print("unselect") {
    }
}

所以请检查您要将 check 值设置为 false 的位置并使用它。

更新:
只需执行以下检查:

if UserDefaults.standard.set(true, forKey: "check") {
    // Show data
} else {
    // segue to another viewController
}

关于ios - 在 swift 中使用 userdefaults 保存复选框按钮状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46433211/

相关文章:

ios - leveldb语义错误,连续从podfile接收错误

ios - 导航栏色调不透明度不会改变颜色

javascript - Angularjs + 检查复选框是否已选中

ios - 如何以与 Siri 显示的波浪状效果相同的方式为线条设置动画?

ios - 从委托(delegate)调用时未输入协议(protocol)方法

ios - 通过搜索 LinkedIn 获取公开资料 URL

jquery - 如何在ZK中使用jQuery点击

ios - 应用程序在设备上崩溃但可以在模拟器 iOS 上运行

ios - 链接器命令失败并显示退出代码(没有此类模块)

jquery - 更改多个复选框的选中属性