https://developer.apple.com/documentation/uikit/uiviewcontrollertransitioningdelegate
"A set of methods that vend objects used to manage a fixed-length or interactive transition between view controllers."
뷰 컨트롤러 사이에서 고정된 길이 혹은 상호작용 전환 관리를 위해 사용되는 객체들을 제공하는 메소드의 집합입니다.
@MainActor protocol UIViewControllerTransitioningDelegate
커스텀 모달 프리젠테이션 타입을 사용하는 뷰 컨트롤러를 제시하길 원한다면, 해당 뷰 컨트롤러의 modalPresentationStyle
속성을 커스텀으로 설정하고, 이 프로토콜을 따르는 객체를 뷰 컨트롤러의 transitioningDelegate
속성에 할당해야 합니다. 이 뷰 컨트롤러를 제시할 때 UIKit
은 사용하기 위한 객체에 대한 전환 딜리게이트를 쿼리하며, 이는 뷰 컨트롤러가 위치로 애니메이션 처리될 때 수행됩니다.
전환 딜리게이트 객체를 구현할 때 뷰 컨트롤러가 제시되고 있는지 혹은 해제되고 있는지에 따라 다른 애니메이터 객체를 반환할 수 있습니다. 모든 전환은 기본적인 애니메이션 구현을 위한 전환 애니메이터 객체(UIViewControllerAnimatedTransitioning
프로토콜을 따르는 객체)를 사용합니다. 전환 애니메이터 객체는 유한한 시간 동안 애니메이션의 집합을 수행합니다. 터치 입력 혹은 애니메이션 타이밍의 제어를 위한 다른 사용자 상호작용 사용을 원하는 경우 애니메이션의 진행상황을 업데이트하기 위한 상호작용 애니메이터 객체(UIViewControllerInteractiveTransitioning
프로토콜을 따르는 객체)를 제공할 수도 있습니다. 뷰 컨트롤러 제시 및 해제에 대해 개별 애니메이터 객체를 제공할 수 있습니다.
커스텀 모달 전환 스타일의 경우 애니메이터 객체와 더불어 UIPresentationController
객체를 제공할 수 있습니다. 시스템은 뷰 컨트롤러 제시 전에 프리젠테이션 컨트롤러를 생성하고, 뷰 컨트롤러가 해제될 때까지 해당 객체에 참조를 유지합니다. 이 존재는 애니메이터 객체의 수명을 넘어서 확장되기 때문에 프리젠테이션 혹은 해제 프로세스의 측면들을 조정하기 위해 프리젠테이션 컨트롤러를 사용할 수 있습니다.
프레젠테이션 컨트롤러를 사용하여 그렇지 않으면 수행하기 어려운 프레젠테이션 또는 해제 프로세스의 측면을 조정할 수 있습니다. 커스텀 전환 스타일이 별도의 그림자 뷰를 뷰 컨트롤러의 컨텐트에 대한 배경 표시에 관여하는 경우 프리젠테이션 컨트롤러는 그림자 뷰를 생성할 수 있고 적합한 시점에 이를 보여주거나 숨길 수 있습니다.