본문 바로가기
iOS/iOS

화면 간 데이터 전달

by 패쓰킴 2022. 6. 10.
728x90

화면 간 데이터를 전달 할 때 사용할 수 있는 방법

크게 두가지,

특정 액션이 이뤄지면 다른 ViewController로 전달한다는 목적을 가진다.

1. Delegate

서로 다른 ViewController가 1:1로 연결될 때

 

예를 들어,  로그인을 해야하는 상황일 때

' 메인VC -> 로그인VC -> 메인VC '

(메인 화면에서 로그인 화면으로 넘어갔다가 로그인이 완료되면 다시 메인으로 돌아오는 프로세스)

 

메인VC와 로그인VC가 1:1로 연결되므로 로그인VC에서 딜리게이트(protocol)을 생성하여 로그인이 완료되면 로그인delegate를 채택한 메인VC에서 감지하여 필요한 동작을 수행하게 해준다

코드 예제

2. Notification observer

하나의 ViewController에서 다른 여러 ViewController로 1:n 연결될 때

 

예를 들어, 북마크 기능이 있을 때

' 목록VC -> 상세VC(북마크가 되어 있는지 여부 함께 알려줌) '

' 목록VC -> 마이페이지VC(북마크가 몇개 되어 있는지 함께 알려줌)'

' 목록VC -> 북마크VC(북마크 목록 보여줌)'

(목록화면에서 북마크를 하면, 동시에 상세VC, 마이페이지VC, 북마크VC에 알려 화면을 갱신해야한다면)

 

목록 화면에서 상세,마이페이지,북마크VC로 1:n으로 연결되므로 notification을 이용하여 각 VC에서 필요한 동작을 수행하게 해준다.

코드 예제

728x90

'iOS > iOS' 카테고리의 다른 글

Date  (0) 2022.06.10
버전업 앱스토어 배포  (0) 2022.06.10
뒤로가기 스와이프 감지  (0) 2022.06.02
Local DB 결정 시 참고 사이트  (0) 2022.04.22
UILabel에 이미지 넣기  (0) 2022.04.20

댓글