2017-10-25 11 views
0

私のコードは、テキストフィールドからテキストを取り出し、別のView Controllerにセグメンテーションします。問題は、1つのセグ項目のみを保存できることです。新しいボタンは、ボタンが押されるたびに古いものを置き換えます。 vc2ではどのようにして新しいエントリをすべてsegueに保存できますか?seguedデータを別のviewcontrollerに格納する(swift4)

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 
    } 



} 

答えて

0

第2のビューコントローラは、あなたが何かをすることで、ラベルに、ボタンのテキストを追加することができるはずです例えば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に戻ると、データを無駄に失うことになります。その場合、2番目のVCのviewWillDisappearにラベルの現在のテキストを保存し、最初のVCのprepareforsegue関数でこれを取得することをお勧めします。詳細はこちら:Swift: How to store user preferences?

関連する問題