화면의 전환 - 내비게이션

이하연·2021년 9월 7일
0

Boostcourse

목록 보기
10/20

1. 내비게이션 인터페이스

정의

언제? 일정한 정보의 흐름을 가지고 이동할때 사용

내비게이션 인터페이스란 계층적 구조의 화면전환을 위해 사용되는 드릴 다운 인터페이스입니다. 이때 드릴 다운 인터페이스란, 각 선택할 수 있는 항목에 대한 세부항목이 존재하는 인터페이스입니다.

내비게이션 컨트롤러

  • 내비게이션 컨트롤러 = 컨테이너 뷰 컨트롤러

  • 역할 : 내비게이션 스택을 사용하여 다른 뷰 컨트롤러를 관리

  • 구성

    • 내비게이션 스택뷰에 포함된 최상위 컨텐트 뷰 컨트롤러의 콘텐츠를 나타내는 뷰
    • 내비게이션 컨트롤러가 직접 관리하는 뷰 ( 내비게이션바 or 툴바 )
  • 내비게이션 델리게이트 객체 사용 가능

    → 내비게이션 인터페이스의 변화에 따른 특정 액션을 동작하도록 하기 위해

  • 컨텐트 뷰 컨트롤러 : 내비게이션 스택에 담겨 콘텐츠를 보여주게 되는 뷰 컨트롤러들

내비게이션 스택 " 화면이동 "

UINavigationController 클래스의 메서드 또는 Segue를 사용하여 내비게이션 스택의 뷰 컨트롤러를 추가, 삭제할 수 있습니다. 이때 애플리케이션 실행 중 사용자가 뒤로가기 버튼을 사용하거나, 화면의 왼쪽 가장자리를 스와이프할 경우 스택에 있는 최상위 컨트롤러가 pop되고 그 아래 가려져 있던 뷰 컨트롤러의 콘텐츠가 보여집니다.

  • 스택은 push, pop을 통하여 뷰 컨트롤러 를 관리합니다.

  • 내비게이션 스택에 push 된 뷰 컨트롤러들은 애플리케이션에 표시됩니다.

  • push

    • 루트 뷰 컨트롤러 - 내비게이션 컨트롤러를 생성할 때 디폴트로 존재 ( 삭제 안됨 )

    • 새로운 뷰 컨트롤러가 push 될 때마다 UIViewController 인스턴스 생성 후 내비게이션 스택에 추가

    • 그림 설명

  • pop

    • pop이 되면 UIViewController의 인스턴스가 다른 곳에서 참조되고 있지 않다면 메모리에서 해제되고 내비게이션 스택에서 삭제됩니다.

    • 코드 - segue - touch up inside

      @IBAction func popToPrev(){
      		self.navigationController?.popViewController(animated: true)
      }
    • 그림 설명

UINavigationController 클래스

0개의 댓글