我有一个VC,它将名称传递给第二个视图控制器上的标签:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destination = segue.destination as? ViewController{
destination.name = petNameTxt.text
destination.morning = morningFeed.text
destination.night = nightFeed.text
}
}在第二个VC中,我尝试保存标签,但它只保存UserDefaults中的占位符文本:
保存在ViewDidLoad中
let userDefaults = UserDefaults.standard
userDefaults.setValue(petNameLbl.text, forKey: "data")
userDefaults.synchronize()将其加载到与ViewDidLoad一起运行的单独函数中
let defaults = UserDefaults.standard
if let name = defaults.string(forKey: "data"){
petNameLbl.text = name
}发布于 2018-06-22 12:36:16
不确定您的问题是什么,但这里有一个更合适的(INMNSHO)解决方案:
保存该值的代码:
Thread.current.threadDictionary["data"] = petNameLbl.text检索值的代码
petNameLbl.text = Thread.current.threadDictionary["data"]https://stackoverflow.com/questions/50980497
复制相似问题