2017-10-25 22 views
0

내 코드는 텍스트 필드의 텍스트를 가져 와서 별도의보기 컨트롤러에 연결합니다. 문제는 1 개의 segue 항목 만 저장할 수 있다는 것입니다. 단추를 누를 때마다 새 단추가 이전 단추를 대체합니다. vc2에서 어떻게 새 항목을 모두 저장할 수 있습니까?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

두 번째 뷰 컨트롤러 당신이 뭔가를 수행하여, 라벨에있는 버튼의 텍스트를 추가 할 수 있어야한다 예를 들어 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?