2차 세미나를 공부하면서 기존에 알고 있던 데이터 바인드 함수와 delegate 패턴 외에 두가지 방식을 알게 되었고 이번 기회에 정리하면 좋을거 같아서 하게 되었따.!
일단 아래 뷰를 활용해서 진행할것이다~!
첫번째는 아주 간단한 방식이다. FristVC → SecondVC로 값을 전달할때
i) SecondVC에서 미리 구현한 dataBind 함수를 구현한다.
//SecondVC
func dataBind(id: String) {
rootView.welcomeLabel.text = "\\(id)님 환영합니다"
}
ii) FirstVC에서 SecondVC dataBind함수에 매개변수로 넣어줘서 push할때 실행해주면된다.
private extension SecondSeminarFirstViewController {
@objc func pushToTvingWelcomeView() {
let secondSeminarSecondViewController = SecondSeminarSecondViewController()
secondSeminarSecondViewController.dataBind(id: rootView.idTextField.text)
}
여기서부터가 이제 이해가 좀 필요한 내용이다. 우리는 이제 SecondVC → FirstVC로 pop을 하면서 값을 전달할껀데 물론 dataBind함수로 실행을 해도 되지만, 다른 방식을 활용하려고 한다. 그 중 첫번째가 protocol Delegate 패턴이다.
protocol은 어떤 기능에 적합한 특정 메서드, 프로퍼티 및 기타 요구 사항의 청사진(Bluprint)을 의미합니다.
즉 만약, protocol을 채택한 변수가 있다면, 그 변수는 protocol에서 요구하는 메섣드나 프로퍼티를 구현을 해야될 의무가 생기게 됩니다
우리는 해당 protocol과 그것을 채택한 변수를 secondVC에 구현을 할것입니다.