首页 > 解决方案 > 如何在多故事板应用程序中使用 segues 保存数据?

问题描述

我对编码非常陌生,我正在尝试制作一个简单的应用程序。该应用程序是一种问卷调查,它会问你一个问题,你必须把答案放在 textField 中。问题是当您尝试返回上一页时,您在 textField 中输入的文本会消失。如果您决定更改某些问题的答案,我希望文本保留在那里。

这是第一个视图:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }
        
    @IBAction func startedButtonPressed(_ sender: UIButton) {
    
    self.performSegue(withIdentifier: "goToPageTwo", sender: self)
    }
    override func prepare(for segue: UIStoryboardSegue, sender: Any?)
    {
        if segue.identifier == "goToPageTwo" {
            let destinationVC = segue.destination as! PageTwoViewController

这是第二个页面视图:

import UIKit

class PageTwoViewController: UIViewController {
    
    var textBox: String?
    @IBOutlet weak var textFieldOne: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func backButtonPressed(_ sender: UIButton) {
        self.dismiss(animated: true, completion: nil)
    }

标签: iosswiftseguetransfer

解决方案


如果您的问卷有多个页面,处理它的一种方法是使用数据结构在用户键入答案后保存所有答案,然后将它们加载到页面上的文本框(如果可用)。

您可以使用哈希图,其中键是问题编号,值是文本答案。

然后,您可以使用 segue/unwind segue 向前/向后传递该 Map。

使用带有 Hashmap 的静态类可能更容易,以便从每个视图控制器访问。


推荐阅读