通过NSUserDefaults Swift 2.0检索数据

时间:2016-03-09 19:20:19

标签: swift nsuserdefaults

目前,我的NSUserDefaults代码运行良好。我现在唯一的问题是如何将数据存储发送到另一个页面?我现在可以保存数据,但是如何通过NSUserDefaults将相同的数据检索到辅助页面?

import UIKit

    class MainTableViewController: UITableViewController, UITextFieldDelegate {

        let userDefaults = NSUserDefaults.standardUserDefaults()

        @IBOutlet weak var name: UITextField!

        @IBAction func btnSave() {   

            if name.text == "" {

                let alert = UIAlertController(title: "Data", message: "Missing Name.", preferredStyle: UIAlertControllerStyle.Alert)

                alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))

                self.presentViewController(alert, animated: true, completion: nil)

            }

            else {

                userDefaults.setObject(name.text, forKey:"name")

                userDefaults.synchronize()
            }
        }

        override func viewDidLoad() {

                super.viewDidLoad()

        }

        override func viewDidAppear(animated: Bool) {

                name.text = userDefaults.stringForKey("name")
        }
    }

1 个答案:

答案 0 :(得分:2)

您可以使用相同的代码从第二页检索数据。 像这样在第二页中创建NSUserDefaults;

首先将这些代码添加到IBAction函数中的FirstPage中。不要使用if else语句进行测试。

UserDefaults.standard.set("yourValue", forKey: "yourKey")

当您按下按钮时,应使用您的密钥保存数据。

在第二页中,您可以像这样在viewDidLoad方法中检索数据;

override func viewDidLoad() {
super.viewDidLoad()
print(UserDefaults.standard.value(forKey: "yourKey") ?? "defaultValue in case key is not found")
print(value)
}

secondPage打开时,应该将您的值打印到控制台(xcode中的底部窗口)。如果您仍然无法检索到您的价值,请与我分享您的storyboard图片。我希望看到你的联系。