Xcode : 부모뷰에 접근해 보았다
모바일 앱을 만들다보면 다른 뷰로 전환하면서 특정한 데이터를 넘겨주어야 할 때가 있다.
Xcode던 Android Studio건 자식뷰에 데이터를 넘겨주어서 뷰를 띄우는 것은 쉽다.
하지만 자식뷰가 종료될 시점에 부모뷰에 특정 데이터를 전달해야 한다면?
이런 문제가 나도 발생했기 때문에 또 열심히 박치기한 결과, 해결책을 찾아내어 그 방법을 포스팅한다.
단, 이 방법은 NavigationViewController가 활성화 되어 있어야한다.
일단
부모뷰 : MainViewController (mvc)
자식뷰 : DetailViewController (dvc)
라 가정하겠다. (내 과제가 이렇기에...)
먼저 자식뷰를 보면
이렇게 부모뷰에 대한 변수를 선언해준다.
그 다음에 부모뷰가 자식뷰에서 자신의 변수같은 것을 건드릴 수 있게 함수를 짜준다.
이렇게 말이다 저 changeIsRented 함수는 mvc에 정의 되어 있지만, dvc에서 실행하는 함수인 것이다.
이제 부모뷰가 자식뷰를 호출할 때 자식뷰의 변수중 자신과 타입이 같은 변수에 self를 넣어줌으로써 자식뷰가 부모뷰에 접근할 수 있게한다.
그러면 자식뷰는
이렇게 부모뷰의 정보가 담겨있는 mvc의 멤버를 컨트롤 할 수 있다.
이를 통해 우리는 Xcode에서 코딩하는 주요 언어인 Swift는
"Call by Reference"라는 것을 깨닳았다.
Call by Reference가 뭐냐고? 2학년으로 돌아가도록!
...끝이다
사실 되게 별거 없다.
오늘도 내 지식이 누군가에게 도움이 되었기를 바란다.
이만 빠잉!