화면 전환에 필요한 기술
Content View Controller
- 화면을 구성하는 뷰를 직접 구현하고 관련된 이벤트를 처리하는 뷰 컨트롤러
Container View Controller
- 하나 이상의 Child View Controller를 가지고 있다.
- 하나 이상의 Child View Controller를 관리하고 레이아웃과 화면 전환을 담당한다.
- 화면 구성과 이벤트 관리는 Child View Controller에서 한다.
- Container View Controller는 대표적으로 Navigation Controller와 TabBar Controller 가 있다.
UINavigationController
계층구조로 구성된 content를 순차적으로 보여주는 container view controller
예시: 아이폰 기본 설정 앱처럼 들어가고 들어가는.
네비게이션 스택(Navigation Stack)이라는 정렬된 스택을 사용하여서 자식을 관리한다.
자료구조의 스택이 쌓이는 것과 동일. (LIFO) / Push, pop
처음 스택이 rootView이고 그 이후가 childView
알아야할 기술 - Navigation Bar
화면 전환 방법 2가지
1. 소스코드를 통해 전환하는 방식
2. 스토리보드를 통해 전환하는 방식
혹은 뷰컨의 뷰 위에 다른 뷰를 가져와서 바꿔치기 (사용 X) -> 메모리 누수 위험
혹은 뷰컨에서 다른 뷰컨 호출해서 전환하기
혹은 네비게이션 컨트롤러 사용하여 화면 전환
혹은 화면 전환용 객체 세그웨이 사용하여 전환
뷰컨에서 다른 뷰컨 호출하기
https://developer.apple.com/documentation/uikit/uiviewcontroller/1621380-present
Apple Developer Documentation
developer.apple.com
Parameters
viewControllerToPresent
The view controller to display over the current view controller’s content.
flag
Pass true to animate the presentation; otherwise, pass false.
completion
The block to execute after the presentation finishes. This block has no return value and takes no parameters. You may specify nil for this parameter.
다시 이전화면으로 돌아가게 하는 메서드
dismiss 메서드이다.
https://developer.apple.com/documentation/uikit/uiviewcontroller/1621505-dismiss
Apple Developer Documentation
developer.apple.com
dismiss 메서드는 화면을 걷어내는 느낌.
Navigation Controller 으로 화면 전환하기
객체 세그웨이를 사용하여 화면 전환하기
세그웨이를 사용하면 코드가 필요없고 스토리보드만으로 화면 전환이 가능하다.
'ios' 카테고리의 다른 글
Swift - error ( setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key ss.) (0) | 2023.01.18 |
---|---|
Swift - 상속 (0) | 2023.01.17 |
Swift - 구조체 / 클래스 (0) | 2022.12.31 |
Swift - 반복문(for in, repeat while)| (0) | 2022.12.20 |
Swift - 함수 (메서드, 매개변수, 클로저) (0) | 2022.12.16 |