UIKit에서는 화면을 전환하는 방법이 여러 가지 있지만, 실제로는 상황에 따라 적절한 방식을 선택하면 된다.
- 화면을 계층적으로 이동한다 → Show
- Split View의 Detail 화면을 변경한다 → Show Detail
- 현재 화면 위에 독립적인 화면을 띄운다 → Present Modally
- 큰 화면에서는 팝오버, 작은 화면에서는 모달로 표시한다 → Present as Popover
이번 글에서는 각각의 방식이 어떤 상황에서 사용되는지 간단히 정리해 보려고 한다.
화면 전환 방식
Show
show(_:sender:)내비게이션 컨트롤러를 사용하는 경우 새로운 뷰 컨트롤러를 Push하여 화면을 전환한다. 사용자가 계층 구조를 따라 이동하는 대부분의 화면 전환이 여기에 해당한다.
Show Detail
showDetailViewController(_:sender:)UISplitViewController에서 사용하는 화면 전환 방식이다. Master-Detail 구조에서 Detail(Secondary) 영역의 화면을 교체할 때 사용된다. iPad와 같이 Split View를 사용하는 환경에서 주로 볼 수 있다.
Present Modally
present(_:animated:completion:)현재 화면 위에 새로운 화면을 Modal 형태로 표시한다.
화면을 독립적으로 표시하거나, 작업을 완료한 뒤 다시 원래 화면으로 돌아와야 하는 경우에 자주 사용된다. modalPresentationStyle을 이용해 Full Screen, Page Sheet 등 다양한 표시 방식을 선택할 수 있다.
Present as Popover
present(_:animated:completion:)을 이용해 화면을 표시하되, popoverPresentationController를 설정하여 팝오버 형태로 표시하는 방식이다. iPad처럼 화면이 넓은 환경에서는 팝오버로 표시되고, Compact Width(iPhone)에서는 자동으로 Modal 형태로 변경된다.
시연
iOS

iPadOS
