将segued数据存储在单独的viewcontroller上(swift4)

时间:2017-10-25 15:45:45

标签: ios save segue swift4 userdefaults

我的代码从文本字段中获取文本并分段到单独的视图控制器。问题是它只能存储1个segue条目。每按一次按钮,新的替换旧的。如何在vc2上将每个新条目存储到segue。

VC

import UIKit

class ViewController: UIViewController {

    @IBOutlet var txt: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()

    }
    @IBAction func pressButton(_ sender: Any) {
        if txt.text != "" {
performSegue(withIdentifier: "segue", sender: self)

        }
        }
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let secondController = segue.destination as! twoViewController
        secondController.myString = txt.text!

    }
    }

twoVC

import UIKit

class twoViewController: UIViewController {

    @IBOutlet var labelSmtih: UILabel!
    var myString = String()

    override func viewDidLoad() {
        super.viewDidLoad()
        labelSmtih.text = myString
    }



}

1 个答案:

答案 0 :(得分:0)

如果第二个视图控制器是一个UISplitViewController,你应该能够通过以下几行做一些事情,将按钮的文本附加到标签:

@IBAction func pressButton(_ sender: Any) {
        if txt.text != "" {
performSegue(withIdentifier: "segue", sender: self)

        }
        }
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let secondController = segue.destination as! twoViewController
        secondController.myString += txt.text!

    }
    }

如果你真的有一个独立的视图控制器,一旦你回到第一个VC,它可能会丢失数据。在这种情况下,我建议你在第二个VC的viewWillDisappear上保存标签的当前文本,然后在第一个VC上的prepareforsegue函数中检索它。更多信息:Swift: How to store user preferences?