계층구조로 구성된 content를 순차적으로 보여주는 container view controller
(ex) 아이폰 설정메뉴
Navigation View controller에서 각 메뉴화면이 스택처럼 쌓인 형태로 계층구조를 표현하는 것으로, 하위 메뉴로 들어갈 수록, 스택 안으로 각 메뉴화면은 순차 push되어 쌓이는 것임 -> back 버튼을 누르면 해당 메뉴화면은 pop되는 것임
소스코드를 통해서, Storyboard를 통해서 화면전환되는 것은 사실 다음과 같이 상세하게 구분해볼 수 있다.
1. View Controller의 View 위에 다른 View를 가져와서 화면을 바꿔놓는 것 -> 지양해야 한다!(leak of memory)
2. View Controller에서 다른 View Controller를 호출하여 화면을 바꿔놓는 것
3. Navigation Controller를 사용하여 화면을 바꿔놓는 것
4. 화면전환용 객체 세그웨이(Segueway)를 사용하여 화면을 바꿔놓는 것
현재 View Controller를 인자로 받아, 화면전환 시 애니메니션을 사용할지 여부를 flag에 값을 주고 화면을 전환하는 방법
func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil)
func dismiss(animated flag: Bool, completion: (() -> Void)? = nil)
Navigation stack의 성질을 활용하는 방법
func pushViewController(_ viewController: UIViewController, animated: Bool)
func popViewController(animated: Bool) -> UIViewController?