gpt4 book ai didi

swift - 如何保存 textField.text 数据并在 View Controller 之间移动时持久保存它们?

转载 作者:行者123 更新时间:2023-11-28 07:55:21 25 4
gpt4 key购买 nike

我已经使用 3 个不同的 View Controller 构建了一个多步骤注册。

VC1: Email, pass, confirm pass text fields then press next to VC2
VC2: First, middle, last name then press next to VC 3
VC3: Address, city, state, zipcode -> Complete sign up.

我想知道如何在这些 View Controller 之间移动时保留 textField.text 数据。

所以,当我填写 VC2 但返回 VC1,然后返回 VC2 时,我的 VC2 字段被重置并且为空白,我如何保存这些字段以便当我返回 VC2 时,它们被保存并填充?

用户默认值?并在按下后退按钮时将它们保存到模型中?有更好的解决方案吗?谢谢。

最佳答案

因此,如果您使用 segues 在屏幕之间导航,例如 self.performSegue(withIdentifier: "ID_HERE", sender: self)。我建议将数据从 VC1 传递到 VC2 再到 VC3,如果您返回,则将插入的数据传递给之前的 ViewController。

要从 VC1 传递到 VC2,您可以使用 prepareForSegue 函数:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "ID_HERE"{
let destVC = segue.destination as! NextViewController
destVC.variable = self.variable
}
}

要将数据从 VC2 传回 VC1,请执行以下操作:

创建协议(protocol):

protocol VC2Delegate {
func passData(passedString: String)
}

将协议(protocol)添加到 VC1

Class VC1: : UIViewController, VC2Delegate{}

并实现协议(protocol)中的功能:

func passData(passedString: String){ 
//Write the String in your TextField or whatever
}

并将以下行添加到 prepareForSegue 函数

destVC.VC2Delegate = self

并且您需要 VC2 中的 VC2Delegate 变量:

var VC2Delegate : VC2Delegate?

在 VC2 中,您在用户单击保存按钮后调用 passData 函数,或者例如在 viewWillDisappear 中调用 passData 函数

override func viewWillDisappear(_ animated: Bool) {
VC2Delegate?.passData(passedString: String)
}

关于swift - 如何保存 textField.text 数据并在 View Controller 之间移动时持久保存它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48281080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com