IOS] ViewController간 정보 보내기

함수, 객체, 변수 등을 VC간 정보 교류를 할 수 있는 방법은 여러가지 입니다. 

 

1. 변수만 보내는 방법(정보교류 범위가 굉장히 한정적임; 단 한 곳.)

이 방법은 간단한 정보 전달입니다. 간단한만큼 여기저기 쓸 수는 없고 정보 전달 목적지가 한 곳뿐입니다.  

네비게이션 컨트롤러를 통해 넘어가는 다음 viewcontroller(뷰컨)한테 정보 보내기를 합니다.

이 방법은 다음 페이지로 넘어가는 뷰컨에게만 건네주므로 원하는 다른 뷰컨에게 막 건네줄 수 없습니다. 

버튼 있는 페이지에서 라벨이 있는 페이지에 'hello blue'를 전달해보겠습니다

 

아래는 첫번째, 버튼있는 viewcontroller의 버튼 동작 함수입니다.

guard구문으로 

@IBAction func sendData(_ sender: Any) {
        guard let vc = self.storyboard?.instantiateViewController(identifier: "NextVC") as? NextVC else {
            return
        }
        
        vc.data = "hello blue"     		 //다음 뷰컨에서 변수 data로 "hello blue"를 받겠다.
        self.navigationController?.pushViewController(vc, animated: true)
    }

 

 

그리고 그 다음 뷰컨에서 data변수를 선언함으로 '전 뷰컨에서 받은 문자열 여기서 쓰겠다'라고 말해줄 수 있습니다. 

import UIKit

class NextVC: UIViewController {

    var data:String?				//전 뷰컨에서 받은 문자열 여기서 쓰겠습니다~
    
    @IBOutlet weak var resultLabel: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        resultLabel.text = data			//data from FirstViewController
    }