我在settingsController中有一个TextField,我可以修改从pickerView中选择一个名称,问题是这样的:当我更改textField的文本时我也改变了另一个控制器中标签的文本,它可以工作但是当我关闭并重新打开我的应用程序标签是空的,我找不到一种方法来保存我用pickerView给它的文本。
我在settingsController中的代码
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
}
答案 0 :(得分:2)
只需使用NSUserDefaults
即可。
NSUserDefaults.standardUserDefaults().setValue(textField.text, forKey: "savedTextField")
然后,当您再次启动时,请填写viewDidLoad
或viewWillAppear
中的字段。
if let text = NSUserDefaults.standardUserDefaults().stringForKey("savedTextField") {
textField.text = text
}