将标签的数据保存在swift中



我的设置控制器中有一个TextField,我可以修改它从pickerView中选择名称,问题是:当我更改TextField的文本时,我也更改了另一个控制器中标签的文本,它可以工作,但当我关闭并重新打开我的应用程序时,标签是空的,我找不到保存我用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()     
        }

DataManager:

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")

然后,当您再次启动时,在viewDidLoadviewWillAppear中填充该字段。

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

相关内容

  • 没有找到相关文章

最新更新