<!--
{
  "documentType" : "article",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/scenes",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Scenes"
}
-->

# Scenes

Manage multiple instances of your app’s UI simultaneously, and direct resources to the appropriate instance of your UI.

## Discussion

UIKit manages each instance of your app’s UI using a [`UIWindowScene`](/documentation/UIKit/UIWindowScene) object. A *scene* contains the windows and view controllers for presenting one instance of your UI. Each scene also has a corresponding [`UIWindowSceneDelegate`](/documentation/UIKit/UIWindowSceneDelegate) object, which you use to coordinate interactions between UIKit and your app. Scenes run concurrently with each other, sharing the same memory and app process space. As a result, a single app may have multiple scenes and scene delegate objects active at the same time.

![An image showing two instances of the Notes app running side-by-side on iPad.](images/com.apple.uikit/media-3335652@2x.png)

Manage the configuration of new scenes from your [`UIApplicationDelegate`](/documentation/UIKit/UIApplicationDelegate) object.

## Topics

### Essentials

[Preparing your UI to run in the foreground](/documentation/UIKit/preparing-your-ui-to-run-in-the-foreground)

Configure your app to appear onscreen.

[Preparing your UI to run in the background](/documentation/UIKit/preparing-your-ui-to-run-in-the-background)

Prepare your app to be suspended.

### Window scenes

[Supporting multiple windows on iPad](/documentation/UIKit/supporting-multiple-windows-on-ipad)

Support side-by-side instances of your app’s interface and create new windows.

[`UIWindowSceneDelegate`](/documentation/UIKit/UIWindowSceneDelegate)

Additional methods that you use to manage app-specific tasks occurring in a scene.

[`UIWindowScene`](/documentation/UIKit/UIWindowScene)

A scene that manages one or more windows for your app.

[`UIScene`](/documentation/UIKit/UIScene)

An object that represents one instance of your app’s user interface.

[`UISceneDelegate`](/documentation/UIKit/UISceneDelegate)

The core methods you use to respond to life-cycle events occurring within a scene.

### Configuration

[Specifying the scenes your app supports](/documentation/UIKit/specifying-the-scenes-your-app-supports)

Tell the system about your app’s scenes, including the objects you use to manage each scene and its initial user interface.

  <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/UIApplicationSceneManifest>

[`UISceneConfiguration`](/documentation/UIKit/UISceneConfiguration)

Information about the objects and storyboard for UKit to use when creating a particular scene.

[`UISceneSession`](/documentation/UIKit/UISceneSession)

An object that contains information about one of your app’s scenes.

### Activation and destruction

[`UISceneActivationConditions`](/documentation/UIKit/UISceneActivationConditions)

The set of conditions that define when UIKit activates the current scene.

[`UIScene.ActivationRequestOptions`](/documentation/UIKit/UIScene/ActivationRequestOptions)

An object that contains information you want the system to use when activating the session associated with a scene.

[`UIWindowSceneDestructionRequestOptions`](/documentation/UIKit/UIWindowSceneDestructionRequestOptions)

An object that contains information to use when removing a window scene from your app.

[`UISceneDestructionRequestOptions`](/documentation/UIKit/UISceneDestructionRequestOptions)

An object you pass to UIKit to permanently remove a scene and its associated session from your app.

[`UISceneClosureConfirmation`](/documentation/UIKit/UISceneClosureConfirmation)

A configuration specifying a confirmation dialog that will be shown before a
user action will result in destruction of the scene session and the disconnection of the scene.

### Scene accessories

[`UISceneAccessory`](/documentation/UIKit/UISceneAccessory)

A type which can be used to register for a specific type of scene accessory presentation.

[`UISceneAccessoryRegistration`](/documentation/UIKit/UISceneAccessoryRegistration)

A type which represents the registration for a given scene accessory.

### Scene accessories

[Presenting content on a connected display](/documentation/UIKit/presenting-content-on-a-connected-display)

Fill connected displays with additional content from your app.

[`UISceneAccessory`](/documentation/UIKit/UISceneAccessory)

A type which can be used to register for a specific type of scene accessory presentation.

[`UISceneAccessoryRegistration`](/documentation/UIKit/UISceneAccessoryRegistration)

A type which represents the registration for a given scene accessory.

### URL management

[`UIOpenURLContext`](/documentation/UIKit/UIOpenURLContext)

A system-provided object that contains the information you need to open a single URL.

[`UIScene.OpenExternalURLOptions`](/documentation/UIKit/UIScene/OpenExternalURLOptions)

Options you specify when asking a scene to open a URL.

### Errors

[`UISceneError.Code`](/documentation/UIKit/UISceneError/Code)

Error codes for issues with scenes.

[`UISceneError`](/documentation/UIKit/UISceneError)

Errors returned during the creation or management of a scene.

[`UISceneErrorDomain`](/documentation/UIKit/UISceneErrorDomain)

The domain for scene-related errors.



---

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)