모달은 사용자의 이목을 끌기 위해 사용하는 화면전환 기법. 사실 화면을 전환한다기보다는 이목을 집중해야 하는 화면을 다른 화뭔 위로 띄워(presenting) 표현하는 방식입니다.

모달로 보이는 화면을 사라지게 하려면 반드시 특정 선택을 해야한다는 특징이 있습니다. 예를들어 얼럿을 통해 확인/취소 중 하나를 선택하거나 액션시트에서 무엇인가 선택을 해야합니다.

그래서 모달은 내비게이션 인터페이스와 달리 정보의 흐름을 가지고 화면을 이동한다기 보다는 꼭 이목을 끌어야하는 화면에서 사용합니다. 내비게이션 인터페이스를 통해 화면을 표현하는 것과는 용도가 완전히 다르다고 볼 수 있습니다.그래서 모달로 보이는 화면은 되도록 단순하고 사용자가 빠르게 처리할 수 있는 내용을 표현하는 것이 좋습니다.

Presenting a VeiwController

뷰 컨트롤러를 화면상에 나타내는 방법은 두가지 입니다. 컨테이너뷰 컨트롤러에 임베드 하거나, 프레젠테이션을 통해 나타낼 수 있습니다.뷰 컨트롤러의 나타내기 (present) 지원 기느은 ‘UIViewController’ 클래스에 내장되어 있으며 모든 뷰 컨트롤러 객체에서 사용할 수 있습니다. 뷰 컨트롤러를 나타내면 원래 뷰 컨트롤러 (나타내는 뷰 컨트롤러- presenting view controller) 와 새롭게 나타나는 뷰 컨트롤러(나타나는 뷰 컨트롤러 - presented view controller) 간의 관계가 생성됩니다. 이 관계를 뷰 컨트롤러 계층의 일부를 형성하며, 나타나는 뷰 컨트롤러(presented view controller) 가 사라질(dismissed) 때까지 그대로 유지됩니다.

iOS 앱 프로그래밍