---
title: AVExperienceController.TransitionContext
framework: avkit
role: symbol
role_heading: Structure
path: avkit/avexperiencecontroller/transitioncontext
---

# AVExperienceController.TransitionContext

The state of the transition provided to the delegate object.

## Declaration

```swift
@preconcurrency struct TransitionContext
```

## Overview

Overview When AVExperienceController transitions its experience from fromExperience to toExperience, delegate callbacks provide instances of TransitionContext to allow clients to respond as the transition progresses or reverts. The normal Status sequence is .preparing -> .transitioning -> .completed Once .completed, AVExperienceController’s experience is now the toExperience. Not all transitions are .completed, instead they are .reversed back to the fromExperience. Reversed transitions can happen after .preparing or after .transitioning, but it will not happen after .completed or before .preparing. When a transition is reversed a reason is provided.

## Topics

### Inspecting the transition

- [fromExperience](avkit/avexperiencecontroller/transitioncontext/fromexperience.md)
- [toExperience](avkit/avexperiencecontroller/transitioncontext/toexperience.md)
- [status](avkit/avexperiencecontroller/transitioncontext/status-swift.property.md)

### Understanding transition results

- [AVExperienceController.TransitionContext.Status](avkit/avexperiencecontroller/transitioncontext/status-swift.enum.md)
- [AVExperienceController.TransitionContext.TransitionResult](avkit/avexperiencecontroller/transitioncontext/transitionresult.md)
- [AVExperienceController.TransitionContext.ReversedReason](avkit/avexperiencecontroller/transitioncontext/reversedreason.md)

## Relationships

### Conforms To

- [Equatable](swift/equatable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Responding to experience changes

- [experienceController(_:didChangeAvailableExperiences:)](avkit/avexperiencecontroller/delegate-swift.protocol/experiencecontroller(_:didchangeavailableexperiences:).md)
- [experienceController(_:prepareForTransitionUsing:)](avkit/avexperiencecontroller/delegate-swift.protocol/experiencecontroller(_:preparefortransitionusing:).md)
- [experienceController(_:didChangeTransitionContext:)](avkit/avexperiencecontroller/delegate-swift.protocol/experiencecontroller(_:didchangetransitioncontext:).md)
