---
title: UIArrangementViewController
framework: UIKit
role: symbol
role_heading: Class
platforms: [iOS 27.1+, iPadOS 27.1+]
path: uikit/uiarrangementviewcontroller
---

# UIArrangementViewController

A view controller that presents its container view controllers through an arrangement.

## Declaration

```swift
@MainActor class UIArrangementViewController
```

## Overview

Overview You create an arrangement view controller and set a primary and secondary view controller. The arrangement view controller computes a layout for its content based on the context it is presented in, including the available size, size class, and hardware features. Use updateArrangement(_:animated:) to choose how the arrangement view lays out its content. The default style is UISplitArrangement. The other built-in style is UIOverlayArrangement. Overlay arrangements An overlay arrangement layers the primary view on top of the secondary view in z-order. This layout is well-suited for full-screen experiences like media players, where playback controls overlay a video surface: When the environment changes, such as when a foldable device is folded, the overlay arrangement can transition its views from a layered layout into a side-by-side layout. Use axes(_:) to control which axes are supported. Split arrangements A split arrangement places the primary and secondary views side-by-side along one or more axes. Use this layout for experiences that display two distinct pieces of content simultaneously, such as a music player alongside its lyrics: The split arrangement adapts its axis based on the available size and size class. You can constrain which axes the split supports using axes(_:).

## Topics

### Creating an arrangement view controller

- [init()](uikit/uiarrangementviewcontroller/init().md)

### Configuring the arrangement

- [UIArrangementViewController.Arrangement](uikit/uiarrangementviewcontroller/arrangement.md)
- [UIOverlayArrangement](uikit/uioverlayarrangement-swift.struct.md)
- [UISplitArrangement](uikit/uisplitarrangement-swift.struct.md)
- [updateArrangement(_:animated:)](uikit/uiarrangementviewcontroller/updatearrangement(_:animated:).md)

### Managing arrangement view controllers

- [UIArrangementViewController.ViewPlacement](uikit/uiarrangementviewcontroller/viewplacement.md)
- [viewController(for:)](uikit/uiarrangementviewcontroller/viewcontroller(for:).md)
- [setViewController(_:for:animated:)](uikit/uiarrangementviewcontroller/setviewcontroller(_:for:animated:).md)
- [placement(for:)](uikit/uiarrangementviewcontroller/placement(for:).md)

### Getting view state

- [UIArrangementViewController.ViewState](uikit/uiarrangementviewcontroller/viewstate.md)
- [state(for:)](uikit/uiarrangementviewcontroller/state(for:).md)

## Relationships

### Inherits From

- [UIViewController](uikit/uiviewcontroller.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSExtensionRequestHandling](foundation/nsextensionrequesthandling.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [UIActivityItemsConfigurationProviding](uikit/uiactivityitemsconfigurationproviding.md)
- [UIAppearanceContainer](uikit/uiappearancecontainer.md)
- [UIContentContainer](uikit/uicontentcontainer.md)
- [UIFocusEnvironment](uikit/uifocusenvironment.md)
- [UIPasteConfigurationSupporting](uikit/uipasteconfigurationsupporting.md)
- [UIResponderStandardEditActions](uikit/uiresponderstandardeditactions.md)
- [UIStateRestoring](uikit/uistaterestoring.md)
- [UITraitChangeObservable](uikit/uitraitchangeobservable-67e94.md)
- [UITraitEnvironment](uikit/uitraitenvironment.md)
- [UIUserActivityRestoring](uikit/uiuseractivityrestoring.md)

## See Also

### Container view controllers

- [Creating a custom container view controller](uikit/creating-a-custom-container-view-controller.md)
- [UISplitViewController](uikit/uisplitviewcontroller.md)
- [UINavigationController](uikit/uinavigationcontroller.md)
- [UINavigationBar](uikit/uinavigationbar.md)
- [UINavigationItem](uikit/uinavigationitem.md)
- [UITabBarController](uikit/uitabbarcontroller.md)
- [UITabBar](uikit/uitabbar.md)
- [UITabBarItem](uikit/uitabbaritem.md)
- [UITab](uikit/uitab.md)
- [UITabAccessory](uikit/uitabaccessory.md)
- [UISearchTab](uikit/uisearchtab.md)
- [UITabGroup](uikit/uitabgroup.md)
- [UIPageViewController](uikit/uipageviewcontroller.md)
