Delegate Pattern

이숭인·2021년 6월 30일
0

Mastering iOS

목록 보기
1/11

아직 생소한 .. Delegate 패턴을 이용해 ViewController간의 간단한 데이터 전달을 해보자.

어떤거 만들거?

  • 첫번째 화면 -> 두번째 화면 이동

  • 수정 버튼을 누르면 첫번째 화면 Label에 "확인 ㅋㅋ"

  • 취소 버튼을 누르면 첫번째 화면 Label에 "Cancel"

출력하게끔 해보자 !

프로토콜 선언

프로토콜 정의

  • 두번째 화면에서의 액션으로 첫번째 화면의 Label text를 변경하기 위해서 Optional 형태의 (TestDelegate?) 변수 선언
  • 이 변수에 첫번째 화면의 Delegate를 설정해줄거!.
    (이녀석이 첫번째 화면 Delegate가 되는거임. 음.. 진짜 대리자 느낌 ㅎㅎ)

첫번째 화면(ViewController)

  • 첫째 화면에서 move버튼을 눌러 화면이 전활될 때에 SecondViewController의 Delegate 변수에 ViewController의 Delegate를 위임(위임..이맞나..?)

두번째 화면 (SecondViewController)

  • 두번째 화면에서 modifi버튼 혹은 Cancel버튼의 이벤트에서 delegate에 정의되어 있는 메소드를 이용해 첫번째 화면(ViewController)의 Label text값을 변경할 수 있다.

함 직접 돌려보자 ㅎ

각각의 버튼들을 눌러보면 !

modifi Event

Cancel Event

정리해보자,,

음... 완벽한건 아니지만 정말정말정말 기본적인 Delegate패턴을 적용해봤다,,
익숙하지 않아서 그런지 정말 너무너무 기본적인 작업인데도 코드 작성할때 살짝 헷갈렸네..
그래도 몇번 반복해서 해보니 생각보다 할만하고, 하다보니 나중에 유용하게 잘 써먹을 수 있을 것 같다.

다음 게시글에서는 1번화면 <-> 2번화면 으로의 데이터 이동, 이벤트 처리 같은걸 복합적으로 진행해봐야겠다.

Notification, Delegate 패턴
하다보면 상황에 더 들어맞는게 어떤건지 몸으로 느낄 수 있을것 같다.
그때까지 ,, 열심히 해보자 !

profile
iOS Developer

0개의 댓글