- 다운캐스팅을 이용하여 자식뷰컨트롤러의 프로퍼티에 접근하는 방법.
- delegate(사전적 의미: 위임하다.) 패턴 방법.
- segue - prepare 오버라이딩 방법.
- NotificationCenter 활용하여 전달하는 방법.
위 사진 속 Code Push 버튼을 누르면 가운데 ViewController의 데이터가 우측 뷰컨트롤러에 전달되어 저 화면의 텍스트라벨에 표시되도록 코드를 구현해보겠습니다.
먼저 우측 뷰컨트롤러에서 데이터를 받을 준비를 합니다. 이 때 전달될 데이터가 없어도 오류가 없도록 name값은 옵셔널로 취해줍니다. name은 전달받은 값을 저장하고 textLabel에 값을 넘겨주는 역할을 수행할 변수입니다.
데이터를 주는 쪽인 가운데 뷰컨트롤러에서의 다운캐스팅입니다. 이렇게 다운캐스팅을 하게되면, ViewController에서 CodePushViewController의 프로퍼티 값에 접근할 수 있게 됩니다.
guard let구문 대신 if let구문으로도 사용이 가능합니다. 이 때는 if문 안에서만 선언한 상수 viewController를 사용할 수 있으니 꼭 { } 안에서 처리해주어야 합니다.
@IBOutlet weak var textLabel: UILabel!
var name: String?