<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "tvOS: -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIViewControllerTransitionCoordinatorContext",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(pl)UIViewControllerTransitionCoordinatorContext"
  },
  "title" : "UIViewControllerTransitionCoordinatorContext"
}
-->

# UIViewControllerTransitionCoordinatorContext

A set of methods that provides information about an in-progress view controller transition.

```
@MainActor protocol UIViewControllerTransitionCoordinatorContext : NSObjectProtocol
```

## Overview

Don’t adopt this protocol in your own classes. UIKit creates an object that adopts this protocol and makes it available to your code when you animate changes using a transition coordinator object.

A transition coordinator context provides most of the same information as an object that adopts the [`UIViewControllerContextTransitioning`](/documentation/UIKit/UIViewControllerContextTransitioning) protocol. You use this contextual information to determine the animation parameters, such as the view in which the animations take place, whether the transition is interactive, or whether the transition was the result of an interface orientation change. You then apply that information to the animations you create.

Most animations take place in the view returned by the [`containerView`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/containerView) method. And at the time your animation blocks are executed, the view hierarchy already contains the view of the *from* view controller. You can use your animation blocks to animate additional content in that same container view or you can animate content in an entirely different view.

## Topics

### Getting the views and view controllers

[`viewController(forKey:)`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/viewController(forKey:))

Returns the view controllers involved in the transition.

[`view(forKey:)`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/view(forKey:))

Returns the specified view involved in the transition.

[`containerView`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/containerView)

Returns the view in which the transition takes place.

### Getting the behavior attributes

[`presentationStyle`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/presentationStyle)

The presentation style to use for the transition.

[`transitionDuration`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/transitionDuration)

Returns the noninteractive duration of a transition.

[`completionCurve`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/completionCurve)

Returns the completion curve associated with the transition.

[`completionVelocity`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/completionVelocity)

Returns the starting velocity to use for any final animations.

[`percentComplete`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/percentComplete)

Returns the percentage of completion for an interactive transition when it moves to its noninteractive phase.

### Getting the transition state

[`initiallyInteractive`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/initiallyInteractive)

A Boolean value indicating whether the transition started as an interactive transition.

[`isInteractive`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/isInteractive)

A Boolean value indicating whether the transition is currently interactive.

[`isAnimated`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/isAnimated)

A Boolean value indicating whether the transition is explicitly animated.

[`isCancelled`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/isCancelled)

A Boolean value indicating whether an interactive transition was canceled.

[`isInterruptible`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/isInterruptible)

A Boolean value indicating whether the transition animations can be interrupted.

### Getting the rotation factor

[`targetTransform`](/documentation/UIKit/UIViewControllerTransitionCoordinatorContext/targetTransform)

Returns a transform indicating the amount of rotation being applied during the transition.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)