Xcode

Xcode : 부모뷰에 접근해 보았다

코딩하는쿼카 2022. 6. 13. 02:11

모바일 앱을 만들다보면 다른 뷰로 전환하면서 특정한 데이터를 넘겨주어야 할 때가 있다.

 

Xcode던 Android Studio건 자식뷰에 데이터를 넘겨주어서 뷰를 띄우는 것은 쉽다.

하지만 자식뷰가 종료될 시점에 부모뷰에 특정 데이터를 전달해야 한다면?

이런 문제가 나도 발생했기 때문에 또 열심히 박치기한 결과, 해결책을 찾아내어 그 방법을 포스팅한다.

 

단, 이 방법은 NavigationViewController가 활성화 되어 있어야한다.

 

일단

부모뷰 : MainViewController (mvc)

자식뷰 : DetailViewController (dvc) 

라 가정하겠다. (내 과제가 이렇기에...) 

 

 

 

먼저 자식뷰를 보면

이렇게 부모뷰에 대한 변수를 선언해준다.

 

 

 

그 다음에 부모뷰가 자식뷰에서 자신의 변수같은 것을 건드릴 수 있게 함수를 짜준다.

이렇게 말이다 저 changeIsRented 함수는 mvc에 정의 되어 있지만, dvc에서 실행하는 함수인 것이다.

 

 

 

 

딴거 다 볼 거 없다. 66번째 줄만 보자.

이제 부모뷰가 자식뷰를 호출할 때 자식뷰의 변수중 자신과 타입이 같은 변수에 self를 넣어줌으로써 자식뷰가 부모뷰에 접근할 수 있게한다.

 

 

그러면 자식뷰는 

이렇게 부모뷰의 정보가 담겨있는 mvc의 멤버를 컨트롤 할 수 있다.

 

이를 통해 우리는 Xcode에서 코딩하는 주요 언어인 Swift는 

"Call by Reference"라는 것을 깨닳았다.

 

 

Call by Reference가 뭐냐고? 2학년으로 돌아가도록! 

 

 

...끝이다

사실 되게 별거 없다.

 

오늘도 내 지식이 누군가에게 도움이 되었기를 바란다.

이만 빠잉!