[iOS] 뷰 컨트롤러를 화면상에 나타내는 법

Martin Kim·2021년 8월 9일
0

iOS

목록 보기
5/11
post-thumbnail

뷰 컨트롤러를 화면상에 나타내기

  • 뷰 컨트롤러를 화면에 나타내는 방법에는 두가지가 있다
    • ContainerViewController타입(NavigationViewController나 TapBarViewController처럼 여러 개의 뷰컨트롤러를 제어하는 뷰컨트롤러)에 임베드 시키거나
    • 프레젠테이션을 사용하는 법이다.

      ViewController의 종류에는 두가지가 있다!

      • ContentViewController (자신의 모든 뷰들을 관리하며 앱 컨텐트의 일부를 관리)
      • ContainerViewController (다른 뷰 컨트롤러들을 관리.
        자신의 뷰들과 자신의 자식 뷰 컨트롤러들의 root view들을 관리하고 직접 컨텐트를 관리하지는 않음)

모달방식

  • 모달은 사용자의 이목을 집중시키기 위한 화면전환기법이다.
  • 대화상자창이나 회원가입창을 띄울때 사용한다.
  • 사실, 화면을 전환한다기 보다는 이목을 집중해야 하는 화면을 다른 화면 위로 띄워(Presenting) 표현하는 방식이다.
  • 뷰 컨트롤러를 나타내면(presenting),
    • 원래 뷰 컨트롤러('나타내는' 뷰 컨트롤러 - presenting view controller)와 새롭게 나타나는 뷰 컨트롤러('나타나는' 뷰 컨트롤러 - presented view controller) 간의 관계가 생성되며,
    • 나타나는 뷰 컨트롤러가 dismiss 될때까지 유지된다!
  • 이러한 나타내는 메소드(present)와 제거하는 메소드(dismiss)는 UIViewController에 내장되어있다.
  • 모달로 나타나는 뷰 컨트롤러의 애니메이션을 변경하려면 해당 '나타나는' 뷰 컨트롤러의 modalPresentationStyle 프로퍼티의 값을 변경하면 된다.

네비게이션 방식

  • 네비게이션 방식은 모달 방식과는 다르게 정보의 흐름을 이어나가거나 할때 사용한다.
  • 회원가입창에서 다른 세부 항목을 입력하기 위한 방식으로 사용한다.
  • 네비게이션뷰는 '스택'과도 같아서 가장 상위에 있는 뷰 컨트롤러가 화면 보여지는 방식이다. push와 pop 개념으로 네비게이션뷰에 있는 뷰 컨트롤러 스택을 변경할 수 있다.
    • pushViewController(UIViewController, animated: Bool) // 푸쉬하는 메소드
    • popViewController(UIViewController, animated: Bool) // 팝하는 메소드
    • 이외에도 여러 메소드가 있다.
  • 맨 밑에 기본이 되는 뷰 컨트롤러는 루트 뷰 컨트롤러이다.
  • 내비게이션 컨트롤러가 애플리케이션 윈도우(window)의 루트 뷰로서 역할을 한다면, 내비게이션 컨트롤러를 SceneDelegate.swift 파일에서 구현할 수 있다. (iOS 13 이후! 이전은 AppDelegate.swift 파일에서 구현할 수 있음)

출처: 네이버 부스트코스 iOS 프로그래밍

profile
학생입니다

0개의 댓글