使用 NSUserDefaults (Swift) 在 ViewController 和 TableVC 之间传递数据

Pass data between ViewController and TableVC with NSUserDefaults (Swift)

如何在Swift中的几个类之间传递一个NSUserDefault的状态? 在这种情况下,我想在一个 TableViewController 和一个 VC 之间传递此状态,您可以在其中更改开关上的状态。 这里有一个小模型可以理解...

我用它来设置开关的状态:

@IBAction func changeTouchIDState(sender: AnyObject) {

    if TouchIDSwitch.on {

        NSUserDefaults.standardUserDefaults().setBool(true, forKey: "State")

    } else {

        NSUserDefaults.standardUserDefaults().setBool(false, forKey: "State")

    }
}

如果 state = true,初始 VC 应该询问身份验证。

谢谢!

你的问题不需要更多的解释,我不明白你为什么要传递你已经存储在 NSUserDefaults 中的值,你可以在你的应用程序的任何 class 中访问它。

根据我对你的问题的理解,我建议解决方案:

因为您已经将状态存储在 NSUserDefaults 中,所以在呈现初始 VC 之前检查 NSUserDefaults.standardUserDefaults().boolForKey("State") 如果它是真的,请询问身份验证否则不要。

设置bool后,你应该同步:

NSUserDefaults.standardUserDefaults().synchronize()

然后,您可以通过以下方式访问该值:

func boolForKey(_ defaultName: String) -> Bool