---
title: UIViewControllerInteractiveTransitioning
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/uiviewcontrollerinteractivetransitioning
---

# UIViewControllerInteractiveTransitioning

A set of methods that enable an object (such as a navigation controller) to drive a view controller transition.

## Declaration

```swift
@MainActor protocol UIViewControllerInteractiveTransitioning : NSObjectProtocol
```

## Overview

Overview An interactive transition delegate (which is the term for an object that supports this protocol) can respond to touch events, or to time-varying programmatic input, by speeding up, slowing down, or even reversing the progress of a view controller transition. For example, an interactive transition on a navigation controller could respond to a swipe gesture by moving a view controller onto or off of the navigation stack. To support an interactive view controller transition, you must also provide a transition animator delegate, which is a custom object that adopts the UIViewControllerAnimatedTransitioning protocol. The transition delegate and the transition animator can, if you wish, be defined within a single custom class, but the class must adopt both protocols. If you instead want to provide a fixed-duration animated view controller transition — one that doesn’t support user interaction — use a transition animator delegate on its own. Refer to UIViewControllerAnimatedTransitioning. For the methods you can call to retrieve view transition context information from within your startInteractiveTransition(_:) method, refer to UIViewControllerContextTransitioning.

## Topics

### Starting an interactive transition

- [startInteractiveTransition(_:)](uikit/uiviewcontrollerinteractivetransitioning/startinteractivetransition(_:).md)
- [wantsInteractiveStart](uikit/uiviewcontrollerinteractivetransitioning/wantsinteractivestart.md)

### Providing a transition’s completion characteristics

- [completionCurve](uikit/uiviewcontrollerinteractivetransitioning/completioncurve.md)
- [completionSpeed](uikit/uiviewcontrollerinteractivetransitioning/completionspeed.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Conforming Types

- [UIPercentDrivenInteractiveTransition](uikit/uipercentdriveninteractivetransition.md)

## See Also

### Interactive transitions

- [UIPercentDrivenInteractiveTransition](uikit/uipercentdriveninteractivetransition.md)
- [UIViewImplicitlyAnimating](uikit/uiviewimplicitlyanimating.md)
