<!--
{
  "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/UIWindowSceneDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(pl)UIWindowSceneDelegate"
  },
  "title" : "UIWindowSceneDelegate"
}
-->

# UIWindowSceneDelegate

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

```
@MainActor protocol UIWindowSceneDelegate : UISceneDelegate
```

## Overview

Use your [`UIWindowSceneDelegate`](/documentation/UIKit/UIWindowSceneDelegate) object to manage the life cycle of one instance of your app’s user interface. The window scene delegate conforms to the [`UISceneDelegate`](/documentation/UIKit/UISceneDelegate) protocol, and you use it to receive notifications when its scene connects to the app, enters the foreground, and so on. You also use it to respond to changes in the underlying environment of the scene. For example, if the user resizes a scene, use your delegate to make any needed changes to your content to accommodate the new size.

Don’t create [`UIWindowSceneDelegate`](/documentation/UIKit/UIWindowSceneDelegate) objects directly. Instead, specify the name of your delegate class as part of the configuration data for your scene. You can specify this information in your app’s `Info.plist` file, or in the [`UISceneConfiguration`](/documentation/UIKit/UISceneConfiguration) object you return from your app delegate’s [`application(_:configurationForConnecting:options:)`](/documentation/UIKit/UIApplicationDelegate/application(_:configurationForConnecting:options:)) method. For more information about how to configure scenes, see [Specifying the scenes your app supports](/documentation/UIKit/specifying-the-scenes-your-app-supports).

For an example on using `UIWindowSceneDelegate` in your app, see [Supporting multiple windows on iPad](/documentation/UIKit/supporting-multiple-windows-on-ipad).

## Topics

### Managing the scene’s main window

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

The main window associated with the scene.

### Responding to scene changes

[`-  windowScene:didUpdateEffectiveGeometry:`](/documentation/UIKit/UIWindowSceneDelegate/windowScene(_:didUpdateEffectiveGeometry:))

Called when the window scene’s effective geometry has changed.

### Performing tasks

[`-  windowScene:performActionForShortcutItem:completionHandler:`](/documentation/UIKit/UIWindowSceneDelegate/windowScene(_:performActionFor:completionHandler:))

Asks the delegate to perform the user-selected action.

[`-  windowScene:userDidAcceptCloudKitShareWithMetadata:`](/documentation/UIKit/UIWindowSceneDelegate/windowScene(_:userDidAcceptCloudKitShareWith:))

Tells the delegate that the window scene now has access to shared information in CloudKit.

### Configuring supported interface orientations

[`-  supportedInterfaceOrientationsForWindowScene:`](/documentation/UIKit/UIWindowSceneDelegate/supportedInterfaceOrientations(for:))

Returns the interface orientations supported by the window scene.
The returned value replaces the app’s UISupportedInterfaceOrientations Info.plist value
for this scene. If not implemented, the Info.plist value is used.

### Deprecated methods

[`-  windowScene:didUpdateCoordinateSpace:interfaceOrientation:traitCollection:`](/documentation/UIKit/UIWindowSceneDelegate/windowScene(_:didUpdate:interfaceOrientation:traitCollection:))

Notifies you when the size, orientation, or traits of a scene change.

## Relationships

### Inherits From

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

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

---

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)