【问题标题】:Pass data between ViewController and TableVC with NSUserDefaults (Swift)使用 NSUserDefaults (Swift) 在 ViewController 和 TableVC 之间传递数据
【发布时间】:2015-11-16 22:12:09
【问题描述】:

如何在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 应该询问身份验证。

谢谢!

【问题讨论】:

    标签: ios swift uitableview uiviewcontroller nsuserdefaults


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢!我不知道 NSUserDefault 在所有类中都处于活动状态....
    【解决方案2】:

    设置bool后,你应该同步:

    NSUserDefaults.standardUserDefaults().synchronize()
    

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

    func boolForKey(_ defaultName: String) -> Bool
    

    【讨论】:

    • 不,没有必要打电话给synchronize。您无需调用synchronize即可访问该值。
    猜你喜欢
    • 2019-12-05
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多