push vs present
| present | push |
---|
전개방향 | 세로 | 가로 |
돌아가기 | dismiss | pop |
메소드 | UIViewController | UINavigationController |
1. UIViewController
1-1. present
- 이동
modally
뷰 위에 뷰가 한겹 올라간 구조이다.
- 세로 방향으로 전개된다.
- ex) alert, 새로운 이메일 작성
present(viewController, animated: true, completion: nil)
📱 **present(_:animated:completion:)**
viewControllerPresent
현재의 뷰컨 내용 위에 보여지는 뷰컨
flag
애니메이션 여부
completion
이동이 끝난 후 실행 될 블록
1-2. dismiss
- 돌아가기
- viewController를 navigation으로부터 pop하고, 화면을 업데이트한다.
parentViewController?.dismiss(animated: true)
2. UINavigationController
2-1. push
- 이동
- 스택 위에 viewController를 push하고 화면을 업데이트한다.
- 가로방향으로 전개
navigationController?.pushViewController(이동할VC, animated: true)
📱 **pushViewController(_:animated:)**
viewController
스택 위에 push한 VC, TabBar ViewController는 불가능
- viewController가 이미 Navigation 스택에 있을 경우 예외처리
animated
애니메이션 여부
2-2. pop
navigationController?.popViewController(animated: true)
2-3. popToRoot
navigationController?.popToRootViewController(animated: true)