我可以允许用户将数据从一个标签传递到另一个标签,而不擦除现有数据,但是我无法将用户默认数据从一个textView传递到另一个textView。 必须是两个完全不同的东西。
尝试了这个,那个和另一个,但不是我需要它起作用。
UserDefaults.standard.set(textView.text, forKey: "data")
override func viewDidLoad() {
super.viewDidLoad()
let viewControllerTwo = ViewControllerTwo()
let passData = UserDefaults.standard.object(forKey: "data")
if let data = passData as? String
{
textViewOne.text = data
viewControllerTwo.textViewTwo.text = (viewControllerTwo.textViewTwo.text ?? "") + data
}
self.navigationController?.pushViewController(viewControllerTwo,动画:true)
//Have previously used this for labels which works fine.
//label.text = (label.text ?? "") + "NEW TEXT"
//label.text = (label.text ?? "") + "NEW TEXT2"
//Result ⬇️
//label.text = NEW TEXT
// NEW TEXT2
发生的一切是替换现有文本,我希望添加它。
答案 0 :(得分:0)
在保存数据之前,请先按viewControllerTwo
。尝试移动self.navigationController?.pushViewController(viewControllerTwo, animated: true)
到最后。
答案 1 :(得分:0)
我认为,当您将Firstvc推送到secondvc时,请在secondvc中分配一个变量,并从Firstvc设置值。
在您的 secondVC
var name:String?
在您的 firstVC 中:
let storyBoard: UIStoryboard = UIStoryboard(name: "storyBoardName", bundle: nil)
let vc = storyBoard.instantiateViewController(withIdentifier: "Second vc identifier") as! yoursecondvc
vc.name = "your text"
self.navigationController?.pushViewController(vc, animated: true)
同时,您需要将第二个vc textview.text
值保存在某个用户默认值中,然后添加userdefault values + new variable
。再次,当您关闭屏幕时,可以将更新的textview.text
值保存为用户默认值。我希望它能起作用。如果您仍在寻找更多或更好的方式,请告诉我。