Intro) 이걸 왜 공부하게 되었나요?

2차 세미나를 공부하면서 기존에 알고 있던 데이터 바인드 함수와 delegate 패턴 외에 두가지 방식을 알게 되었고 이번 기회에 정리하면 좋을거 같아서 하게 되었따.!

일단 아래 뷰를 활용해서 진행할것이다~!

1. dataBind 함수 방식

첫번째는 아주 간단한 방식이다. 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)
		}

2. protocol - Delegate 패턴 방식

여기서부터가 이제 이해가 좀 필요한 내용이다. 우리는 이제 SecondVC → FirstVC로 pop을 하면서 값을 전달할껀데 물론 dataBind함수로 실행을 해도 되지만, 다른 방식을 활용하려고 한다. 그 중 첫번째가 protocol Delegate 패턴이다.

i) protocol을 생성한다. 해당 protocol을 채택하는 변수 생성하기

protocol은 어떤 기능에 적합한 특정 메서드, 프로퍼티 및 기타 요구 사항의 청사진(Bluprint)을 의미합니다.

즉 만약, protocol을 채택한 변수가 있다면, 그 변수는 protocol에서 요구하는 메섣드나 프로퍼티를 구현을 해야될 의무가 생기게 됩니다

우리는 해당 protocol과 그것을 채택한 변수를 secondVC에 구현을 할것입니다.

Q. AnyObject, weak?