사용자의 이목을 끌기 위해 사용하는 화면 전환 기법
엄밀히 말하면 화면 "전환"은 아니고, 다른 화면을 현재 화면 위로 present 하여 표현하는 방식 (present modally)
Modal 로 보이는 화면을 사라지게 하려면 특정 "선택"이 동반되어야 한다.
→ 메일 앱에서 "취소" 또는 "전송" 버튼 클릭
→ 모달은 Navigation Interface 와는 달리 정보의 흐름을 가지고 화면을 이동한다기 보다는 " 이목 " 을 끌어야하는 화면에서 사용
→ Navigation Interface 를 통해 화면을 표현하는 것과는 용도가 많이 다름
→ 그래서 Modal 로 보이는 화면은 되도록 단순 하고 사용자가 빠르게 처리 할 수 있는 내용을 표현하는 것이 좋음
Presentation Style
→ Presentation Style 에 따라 화면에 나타나는 모양이 달리진다.
Full-Screen Presentation Style
→ 화면 전체를 덮는다.
Popover Style
→ UIModalPresentationPopover
→ Popover style 은 iPad에서만 지원됨 (넓은 화면 때문)
Transition Styles
→ 전환 스타일은 View Controller 를 표시하는데 사용하는 animation 유형을 결정한다.
→ View controller 를 표시하는 데 가장 적응성이 우수하고 유연한 방법 제공
→ 기본 동작은 view controller 를 modal 방식으로 표시한다
2. presentViewController(animated: completion:)
→ View controller 를 항상 modal 방식으로 표시한다.
→ presentation 을 시작하는 방법은 여러 가지 있음
(아예 다른 main.storyboard 파일을 이야기하는 것)
let storyboard: UIStoryboard = UIStoryboard(name: "SecondStoryboard", bundle: nil)
if let myViewController: MyViewController = storyboard.instantiateViewController(withIdentifier: "MyViewController") as? MyViewController {
// 뷰 컨트롤러를 구성 합니다.
// 뷰 컨트롤러를 나타냅니다.
self.present(myViewController, animated: true, completion: nil)
}
let storyboard: UIStoryboard = UIStoryboard(name: "SecondStoryboard", bundle: nil)
if let myViewController: MyViewController = storyboard.instantiateViewController(withIdentifier: "MyViewController") as? MyViewController {
// 뷰 컨트롤러를 구성 합니다.
// 뷰 컨트롤러를 나타냅니다.
self.present(myViewController, animated: true, completion: nil)
}