如何在不删除先前数据的情况下将用户默认设置的数据从一个textView保存到另一个textView?

时间:2019-07-03 11:42:56

标签: ios swift

我可以允许用户将数据从一个标签传递到另一个标签,而不擦除现有数据,但是我无法将用户默认数据从一个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

发生的一切是替换现有文本,我希望添加它。

2 个答案:

答案 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值保存为用户默认值。我希望它能起作用。如果您仍在寻找更多或更好的方式,请告诉我。