在swift中保存标签的数据

在swift中保存标签的数据,swift,label,nsuserdefaults,savechanges,Swift,Label,Nsuserdefaults,Savechanges,我的设置控制器中有一个文本字段,我可以修改它,从pickerView中选择一个名称,问题是:当我更改文本字段的文本时,我也会更改另一个控制器中标签的文本,它可以工作,但当我关闭并重新打开我的应用程序时,标签是空的,我找不到一种方法来保存我用pickerView给它的文本 设置控制器中的我的代码 override func viewDidLoad() { super.viewDidLoad() var defaults: NSUserDefaults = NSU

我的设置控制器中有一个文本字段,我可以修改它,从pickerView中选择一个名称,问题是:当我更改文本字段的文本时,我也会更改另一个控制器中标签的文本,它可以工作,但当我关闭并重新打开我的应用程序时,标签是空的,我找不到一种方法来保存我用pickerView给它的文本

设置控制器中的我的代码

override func viewDidLoad() {
        super.viewDidLoad()


        var defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()

        if let firstNameIsNotNill = defaults.objectForKey("firstName") as? String {
            self.currencyLabel.text = defaults.objectForKey("firstName") as String
        }

        currencyLabel.delegate = self
}

func currencyDoneClicked(sender: UIBarButtonItem) {

        var myRow = picker.selectedRowInComponent(0)
        currencyLabel.text = pickerData.objectAtIndex(myRow) as NSString
        DataManager.sharedInstance.contenitore = currencyLabel.text
var defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
            defaults.setObject(self.currencyLabel.text, forKey: "firstName")
            defaults.synchronize()     
        }
数据管理器:

import UIKit

class DataManager: NSObject {

    class var sharedInstance:DataManager {
        get {
            struct Static {
                static var instance : DataManager? = nil
                static var token : dispatch_once_t = 0
            }

            dispatch_once(&Static.token) { Static.instance = DataManager() }

            return Static.instance!
        }
    }

    var contenitore : String!
}
在另一个控制器中:

    override func viewDidLoad() {
        super.viewDidLoad()

        labelCurrency.text = DataManager.sharedInstance.contenitore
}

只需使用
NSUserDefaults

NSUserDefaults.standardUserDefaults().setValue(textField.text, forKey: "savedTextField")
然后,当您再次启动时,在
viewDidLoad
viewwillbeen
中填充该字段

if let text = NSUserDefaults.standardUserDefaults().stringForKey("savedTextField") {    
   textField.text = text
}

它可以用来保存文本字段,但是如果我在标签控制器中使用它,标签仍然是空的。。。我认为这是因为有:labelCurrency.text=DataManager.sharedInstance.contenitore再次更改了我的标签,但如果没有它,我就无法在更改文本字段中的文本时修改我的标签。我应该做什么?您应该在数据管理器中解决的问题。如果它没有返回任何内容(尽管它应该返回),请修复它。