View Controller Programming Guide for iOS - Presenting and Transitions
Presenting a View Controller
두 가지 방법이 있다.
- Embedded in Container view controller
- Present
The Presentation and Transition Process
Presentation Styles
보여지는 모습을 결정. 시스템이 제공하는 기본 스타일도 있지만 커스텀으로 만들 수도 있음. 적절한 스타일을 정하고 present할 뷰 컨트롤러의 modalPresentationStyle
프로퍼티에 할당하면 된다.
Full-Screen Presentation Styles
전체 화면을 덮어 밑에 깔려있는 컨텐츠와의 인터랙션을 막는다. horizontal regular 환경에서 전체를 뒤덮는 스타일은 하나밖에 없다. 덮지 못하는 부분은 거무잡잡하게 처리를 하여 인터랙션을 막는다.
UIModalPresentationFullScreen
스타일을 적용하면 UIKit은 전환 애니메이션이 끝난 후에 아래에 있는 뷰 컨트롤러의 뷰를 제거한다. 이를 막기 위해서는UIModalPresentationOverFullScreen
스타일을 적용하면 된다.
The Popover Style
UIModalPresentationPopover
스타일은 추가적인 정보나 포커스된 객체의 관련된 아이템의 리스트를 보여줄 때 효과적이다.
horizontal compact 환경에서는 UIModalPresentationFullScreen
스타일처럼 동작한다. 때문에 따로 dismiss할 버튼이나 동작을 추가해야 한다.
The Current Context Styles
UIModalPresentationCurrentContext
스타일은 특정 뷰 컨트롤러를 덮는 스타일이다. 원하는 뷰 컨트롤러의 definesPresentationContext
를 YES
로 바꿔준다.
마찬가지로
UIModalPresentationCurrentContext
스타일을 적용하면 UIKit이 뷰의 전환이 끝난 뒤에 아래 뷰를 제거한다. 이것을 막기 위해서는UIModalPresentationOverCurrentContext
를 적용하면 된다.
Custom Presentation Styles
UIModalPresentationCustom
스타일을 적용해 개발자가 임의로 스타일을 지정해 줄 수 있다. UIPresentationController
를 상속 받아 커스텀 스타일을 만들 수 있다.
Transition Styles
Present 할 뷰 컨트롤러의 modalTransitionStyle
프로퍼티에 원하는 스타일을 지정해서 전환되는 모습을 바꿀 수 있다.
Presenting Versus Showing a View Controller
UIViewController
는 뷰 컨트롤러를 보이게 하는 두 가지 방법을 제공한다.
showViewController:sender:
와showDetailViewController:sender:
메서드는 가장 적절한 방법으로 뷰 컨트롤러를 표시한다. 컨테이너 뷰 컨트롤러에 속해 있을 때는 거기에 맞는 방식으로, 기본은 모달 형식이다.presentViewController:animated:completion:
메서드는 항상 모달로 뷰 컨트롤러를 띄운다.
Presenting a View Controller
다음과 같은 방법으로 뷰 컨트롤러의 presentation을 시작한다.
- Segue
showViewController:sender:
나showDetailViewController:sender:
presentViewController:animated:completion:
Showing View Controllers
(WIP…)