<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.1.0 -",
    "tvOS: 13.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIWindowScene",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UIWindowScene"
  },
  "title" : "UIWindowScene"
}
-->

# UIWindowScene

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

```
@MainActor class UIWindowScene
```

## Overview

A [`UIWindowScene`](/documentation/UIKit/UIWindowScene) object manages one instance of your app’s UI, including one or more windows that you display from that scene. The scene object manages the display of your windows on the user’s device, and the life cycle of that scene as the user interacts with it. When the state of the scene changes, the scene object notifies its delegate object, which adopts the [`UIWindowSceneDelegate`](/documentation/UIKit/UIWindowSceneDelegate) protocol. The scene also posts appropriate notifications to registered observers. Use the delegate object or notification observers to respond to any changes.

Don’t create window scene objects directly. Instead, specify that you want a [`UIWindowScene`](/documentation/UIKit/UIWindowScene) object at configuration time by including the class name for the scene in the scene configuration details of your app’s `Info.plist` file. You can also specify the class name when creating a [`UISceneConfiguration`](/documentation/UIKit/UISceneConfiguration) object in your app delegate’s [`application(_:configurationForConnecting:options:)`](/documentation/UIKit/UIApplicationDelegate/application(_:configurationForConnecting:options:)) method. When the user interacts with your app, the system creates an appropriate scene object based on the configuration data you provided. To create a scene programmatically, call the [`requestSceneSessionActivation(_:userActivity:options:errorHandler:)`](/documentation/UIKit/UIApplication/requestSceneSessionActivation(_:userActivity:options:errorHandler:)) method of [`UIApplication`](/documentation/UIKit/UIApplication).

## Topics

### Getting the active windows

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

The windows associated with the scene.

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

The key window associated with the scene.

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

The screen that displays the contents of the scene.

### Getting the interface attributes

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

The traits that describe the current environment of the scene.

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

The minimum and maximum size of the app’s windows.

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

An object that specifies the minimum and maximum sizes for resizable windows.

### Observing trait changes

[`UITraitChangeObservable`](/documentation/UIKit/UITraitChangeObservable-67e94)

A type that calls your code in reaction to changes in the trait environment.

[`UITraitChangeObservable`](/documentation/UIKit/UITraitChangeObservable-7qoet)

A type that calls your code in reaction to changes in the trait environment.

### Overriding trait values

[`traitOverrides`](/documentation/UIKit/UIWindowScene/traitOverrides-1klo1)

[`UITraitOverrides`](/documentation/UIKit/UITraitOverrides-swift.struct)

A mutable container of traits you use to set trait changes for an object and its descendants.

[`traitOverrides`](/documentation/UIKit/UIWindowScene/traitOverrides-3chp5)

[`UITraitOverrides`](/documentation/UIKit/UITraitOverrides-c.protocol)

A mutable container of traits you use to set trait changes for an object and its descendants.

### Providing a PDF version of your scene

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

An object that generates a high-fidelity version of your app’s content.

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

An object that coordinates the creation of PDF screenshots of an app’s content.

### Sharing content

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

An object that can provide shareable items for a scene.

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

An interface that provides a source for shareable content to fulfill user requests to share current content.

### Determining window behaviors

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

A Boolean value that indicates whether the window scene is full screen or windowed.

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

An object that specifies the behaviors of the window.

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

An object with properties that determine the behavior of a window.

### Working with window geometry

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

The current values for the window scene’s geometry in system space.

[`requestGeometryUpdate(_:errorHandler:)`](/documentation/UIKit/UIWindowScene/requestGeometryUpdate(_:errorHandler:))

Requests an update to the window scene’s geometry using the specified geometry preferences object.

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

An object that provides geometry information about the window scene.

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

An abstract superclass for representing window scene geometry preferences.

[`UIWindowScene.GeometryPreferences.iOS`](/documentation/UIKit/UIWindowScene/GeometryPreferences/iOS)

An object that represents the geometry preferences for a window scene in an iOS app.

[`UIWindowScene.GeometryPreferences.Mac`](/documentation/UIKit/UIWindowScene/GeometryPreferences/Mac)

An object that represents the geometry preferences for a window scene in an app built with Mac Catalyst.

[`UIWindowScene.GeometryPreferences.Vision`](/documentation/UIKit/UIWindowScene/GeometryPreferences/Vision)

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

Used as the value for a dimension of a size related preference when wanting to leave it unchanged.

### Working with focus

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

The focus system that’s responsible for the window scene.

### Getting the status bar configuration

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

The current configuration of the status bar.

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

An object that describes the configuration of the status bar.

### Configuring a window’s title bar

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

The title bar displayed in a window of a Mac app.

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

An object that you use to configure the title bar of a window in a Mac app built with Mac Catalyst.

### Configuring the windowing control style

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

Describes the placement and style of the system windowing controls for a scene

### Supporting types

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

A menu element that requests a window scene.

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

An object that provides configuration options for a window scene request.

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

An interaction that facilitates activating a window scene when a user pinches out on the interaction’s view.

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

An object that contains information you want the system to use when activating a new window scene.

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

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

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

Constants that indicate the types of animations available for dismissing a scene’s windows.

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

An interaction you add to a view that enables pan gestures to change the containing window scene’s position.

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

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

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

The placement of a window scene relative to other scenes in the workspace.

### Deprecated symbols

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

The coordinate space occupied by the scene.

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

The orientation to use when displaying content in your windows.



---

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)