[Swift] - ViewController 화면전환

2024. 3. 15. 13:30·개발일기/IOS

presentedViewController, presentingViewController의 차이에 대해 보도록 하자.


핵심만 먼저 말하면 presentedViewController는 지금 ViewController가 띄우는ViewController,

presentingViewController는 지금 ViewController를 띄우는 ViewController다.

즉 ViewController A, B, C가 있다고 하고 A가 present로 B를 띄우고, B에서 present로 C를 띄운다고 하면

B의 presentedViewController는 C, presentingViewController는 A가 된다.

이제 가장 큰 차이를 알았으니 개념에 대해 좀 더 자세히 보도록 하겠다.

 

presentedViewController

애플의 공식문서에 따르면

presentedViewController는 인스턴스 프로퍼티로, 이(현재) ViewController에 의해 present된 View Controller를 의미한다. 혹은 뷰 컨트롤러 계층에서의 조상 중 한명이 된다.

만약 뷰 컨트롤러를 present(_:animated:completion:) 메서드를 이용해서 명시적으로나 암묵적으로나 modal처럼 뷰 컨트롤러를 띄우면, 이 메서드를 호출한 뷰컨트롤러의 이 프로퍼티는 present한 view controller가 된다. 만약 현재 뷰 컨트롤러가 다른 뷰 컨트롤러를 modal로 띄우지 않는다면, 이 프로퍼티의 값은 nil이 된다.

 

presentingViewController

얘도 마찬가지로 인스턴스 프로퍼티로, 이 뷰 컨트롤러를 띄운 뷰 컨트롤러를 의미한다.

위의 애와 반대로, 만약 뷰 컨트롤러를 present 메서드를 이용해서 present했을 때, 보여진 뷰 컨트롤러의 이 프로퍼티는 이 뷰 컨트롤러를 띄운 뷰 컨트롤러로 맞춰진다.

만약 뷰 컨트롤러가 modal로 띄워지지 않았지만 조상 중 하나는 띄워졌을 때, 이 프로퍼티는 조상을 띄운 뷰 컨트롤러를 포함한다. 만약 현재 뷰 컨트롤러나 이 조상들중 하나도 modal로 띄워지지 않았다면, 이 프로퍼티의 값은 nil이 된다.

728x90
저작자표시 변경금지 (새창열림)

'개발일기 > IOS' 카테고리의 다른 글

[Swift] - Animation 정리 1  (0) 2024.03.15
[Swift] - CollectionView 정리  (0) 2024.03.15
[Swift] - ViewController 생명주기  (0) 2024.03.15
[Swift] - IOS 앱 생명주기  (0) 2024.03.15
[Swift] - View와 Layer 관계  (0) 2024.03.15
'개발일기/IOS' 카테고리의 다른 글
  • [Swift] - Animation 정리 1
  • [Swift] - CollectionView 정리
  • [Swift] - ViewController 생명주기
  • [Swift] - IOS 앱 생명주기
코딩하는빵친자
코딩하는빵친자
안녕하세요 코딩하는 빵친자입니다. 말그대롭니다.
  • 코딩하는빵친자
    코딩하는 빵친자의 블로그
    코딩하는빵친자
  • 전체
    오늘
    어제
    • 분류 전체보기 (55)
      • 개발일기 (41)
        • Python (9)
        • Swift (2)
        • DataBase (0)
        • 알고리즘 (0)
        • IOS (30)
      • 데보션 영 (4)
      • 코테 (10)
        • Swift (10)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    xcode
    uipangesture
    buildsetting
    podlock
    ios개발
    arm7
    SWIFT
    추적권한
    settransition
    uikit
    podinstall오류
    IOS
    Rosetta
    뷰관련메서드
    pod
    universalapp
    ios스와이프
    delegate패턴
    아웃링크
    제스처인식
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩하는빵친자
[Swift] - ViewController 화면전환
상단으로

티스토리툴바