gpt4 book ai didi

ios - 在我使用 instantiateViewController 函数的情况下在 View 之间传递数据

转载 作者:行者123 更新时间:2023-11-28 16:01:03 26 4
gpt4 key购买 nike

基本上我有五个 View Controller ,第一个是初始 View Controller 有两个文本字段,用户可以在其中输入值。之后,根据用户从两个选择器 View 中的选择,他/她将在点击“下一步”按钮后立即使用 instantiateViewController 函数将他/她定向到第二个、第三个、第四个或第五个 View Controller 。因此,这里根本没有使用 segues。

我想做的是:

(1) 将用户在第一个 View Controller 的文本字段中输入的数据传输到第二个、第三个、第四个或第五个 View Controller ,具体取决于他/她对选择器 View 的选择?

(2) 当用户再次从第二、第三、第四或第五 View 返回到第一 View 时。我希望保留他/她在文本字段中输入的数据?

我尝试使用 prepareforsegue 并在 View Controller 本身之间引入 segue,而不是将它们链接到按钮。然而,事情并不适合我。

非常感谢以上任何帮助!

谢谢,沙迪。

这是我第一个不起作用的 ViewController 的代码:

导入 UIKit

类 View Controller :UIViewController {

@IBOutlet var TextField: UIView!

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

@IBAction func NextVC(_ sender: Any) {

let storyboard : UIStoryboard = UIStoryboard (name: "Main", bundle: nil)
let nextViewController = storyboard.instantiateViewController(withIdentifier: "secondVC") as UIViewController
self.present(nextViewController, animated: true, completion: nil)
performSegue(withIdentifier: "fromFirstToSecondVCSegue", sender: self)
func prepareForSegue (segue: UIStoryboardSegue, sender: Any?) {

var DestViewController : SecondViewController = segue.destination as! SecondViewController

}

请告知我需要做些什么来纠正它?

最佳答案

1) 在你的其他(第二个、第三个、第四个或第五个) View Controller 中有一个你想要保存的属性,例如 String

 class FirstViewController: UIViewController {

var string: String?
}

然后在第一个 View Controller 中实例化其他 View Controller 时,您可以像这样传递数据:

otherViewController.string = "Some string"
self.present(otherViewController, animated: true, completion: nil)

2) 如果您使用当前方法呈现其他 View Controller ,我 99% 确定文本字段中的文本将被保存。如果不是,当您呈现其他 View Controller 时,将该数据保存在 UserDefaults 中并将其写入 viewWillApear。

编辑:

let nextViewController = storyboard.instantiateViewController(withIdentifier: "secondVC") as! SecondViewController
nextViewController.yourPropertyInVC = dataYouWantToPass
self.present(nextViewController, animated: true, completion: nil)

请注意,如果您没有覆盖 prepare for segue 方法,则无需调用它。

关于ios - 在我使用 instantiateViewController 函数的情况下在 View 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41080900/

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