UITabBarController 다음으로 사용했던 뷰컨트롤러는 UINavigationViewController 이를 정리하려다가 이를 포괄하는 개념인 '화면 전환'에 대해 먼저 알아보는 것이 좋겠다 싶다. 화면 전환에 대해 정리해보자.
present, pushViewController 이 메소드들의 차이점을 알고 있니? 그 때 그 때 마구잡이(?)로 가져다 썼던 메소드들도 정리 ㄱㄱ
앱은 보통 한 화면으로만 구성되지 않는다. 화면을 어떻게 나눌 것인지, 나눈 화면 간의 연결은 어떻게 할 것인지 등을 생각해봐야 한다.
여기서 '화면 전환' 이라는 개념이 나오는데, 이 화면전환은 1) 소스 코드 2) Storyboard 두 군데에서 구현할 수 있다.
전환 방식은 크게 4가지로 나눌 수 있다.
1) 하나의 ViewController위에 여러 View를 바꿔가며 사용하는 방식
2) ViewController -> ViewController 호출
3) NavigationController 사용
4) 화면 전환용 객체 Segue 사용
1)번은 Container View Controller 에서 주로 사용되는 방법이다. Container VIew Controller는 UITabBarController에서도 한 번 언급했듯이 대표적인 예시로 UITabBarController, UINavigationViewController 등이 있다.
특별한 경우를 제외하고는 보통 2), 3), 4) 번 방식을 사용하게 되는데, 2) 방식에 대해 먼저 알아보자.
2) ViewController -> ViewController 직접 호출
2)-1 present
2)-2 서로 참조하고 있는 관계
FirstVC -> SecondVC
서로 참조할 수 있다.
여기서 presentedViewController는 SecondVC, presentingViewController는 FirstVC
2)-3 dismiss
*self.dismiss는 self.presentingViewController와 동일한 동작
FirstVC -> SecondVC의 구조에서, SecondVC 쪽에 self.dismiss를 구현했다고 하자. 이는 SecondVC 자기 자신에게 dismiss 하라는게 아니라, presentingViewController인 FisrtVC에게 나(SecondVC) dismiss 하도록 해줘~ 라고 말하는 것과 같다.
2)-4 ViewController를 참조할 때?
IBOutlet으로 참조하는게 아니라, Storyboard ID를 이용해 참조하자.
2)-5 뒤로가기 버튼
안드로이드는 물리적인 뒤로가기 버튼이 있는 반면, 아이폰/아이패드에서 뒤로 돌아가려면 반드시 뒤로가기 버튼이 필요하다. (특히 .fullScreen)
Reference
- 꼼꼼한 재은 씨의 스위프트 기본편 (이재은 저)
'Development > iOS' 카테고리의 다른 글
[iOS] RxSwift (0) | 2022.02.16 |
---|---|
[iOS] Fundamental iOS Design Patterns - MVC (Model-View-Controller) (0) | 2022.01.20 |
[iOS] UITabBarController (0) | 2021.12.17 |
[iOS] Storyboard Reference (0) | 2021.12.15 |
[iOS] Cocoa Touch Framework (0) | 2021.12.13 |