언제? 일정한 정보의 흐름을 가지고 이동할때 사용
내비게이션 인터페이스란 계층적 구조의 화면전환을 위해 사용되는 드릴 다운 인터페이스입니다. 이때 드릴 다운 인터페이스란, 각 선택할 수 있는 항목에 대한 세부항목이 존재하는 인터페이스입니다.
내비게이션 컨트롤러 = 컨테이너 뷰 컨트롤러
역할 : 내비게이션 스택을 사용하여 다른 뷰 컨트롤러를 관리
구성
내비게이션 델리게이트 객체 사용 가능
→ 내비게이션 인터페이스의 변화에 따른 특정 액션을 동작하도록 하기 위해
컨텐트 뷰 컨트롤러 : 내비게이션 스택에 담겨 콘텐츠를 보여주게 되는 뷰 컨트롤러들
UINavigationController 클래스의 메서드 또는 Segue를 사용하여 내비게이션 스택의 뷰 컨트롤러를 추가, 삭제할 수 있습니다. 이때 애플리케이션 실행 중 사용자가 뒤로가기 버튼을 사용하거나, 화면의 왼쪽 가장자리를 스와이프할 경우 스택에 있는 최상위 컨트롤러가 pop되고 그 아래 가려져 있던 뷰 컨트롤러의 콘텐츠가 보여집니다.
스택은 push
, pop
을 통하여 뷰 컨트롤러
를 관리합니다.
내비게이션 스택에 push 된 뷰 컨트롤러들은 애플리케이션에 표시됩니다.
push
루트 뷰 컨트롤러 - 내비게이션 컨트롤러를 생성할 때 디폴트로 존재 ( 삭제 안됨 )
새로운 뷰 컨트롤러가 push 될 때마다 UIViewController 인스턴스 생성 후 내비게이션 스택에 추가
그림 설명
pop
pop이 되면 UIViewController의 인스턴스가 다른 곳에서 참조되고 있지 않다면 메모리에서 해제되고 내비게이션 스택에서 삭제됩니다.
코드 - segue - touch up inside
@IBAction func popToPrev(){
self.navigationController?.popViewController(animated: true)
}
그림 설명