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

# UISceneConfiguration

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

```
@MainActor class UISceneConfiguration
```

## Overview

Use a [`UISceneConfiguration`](/documentation/UIKit/UISceneConfiguration) object to specify information that UIKit can use to create a new scene for your app. Specifically, you must provide the class of the specific scene you want, the class of the scene delegate object your app uses to manage scenes of that type, and a storyboard containing the scene’s initial view controller.

When the user requests a new instance of your app’s user interface, UIKit looks in your app’s `Info.plist` file for the configuration data it needs to create the corresponding scene object. It then packages that information into a [`UISceneConfiguration`](/documentation/UIKit/UISceneConfiguration) object and delivers it as part of the session it passes to the [`application(_:configurationForConnecting:options:)`](/documentation/UIKit/UIApplicationDelegate/application(_:configurationForConnecting:options:)) method of your app delegate. You can accept that configuration data as is or create a return a new [`UISceneConfiguration`](/documentation/UIKit/UISceneConfiguration) object with a different set of configuration details.

## Topics

### Creating a configuration object

[`+  configurationWithName:sessionRole:`](/documentation/UIKit/UISceneConfiguration/configurationWithName:sessionRole:)

Returns a scene-configuration object with the specified role and app-specific name.

[`-  initWithName:sessionRole:`](/documentation/UIKit/UISceneConfiguration/init(name:sessionRole:))

Creates a scene-configuration object with the specified role and app-specific name.

[`-  initWithName:`](/documentation/UIKit/UISceneConfiguration/init(name:))

Creates a scene-configuration object with the specified name.

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

Creates a scene-configuration object.

### Specifying the scene creation details

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

The class of the scene object that you want UIKit to create.

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

The class of the custom delegate object that you want UIKit to create.

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

The storyboard object that contains your scene’s initial view controller.

### Getting the configuration attributes

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

The app-specific name assigned to the scene configuration.

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

The role assigned to the scene configuration.

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

Constants that indicate the possible roles for a scene.

## Relationships

### Conforms To

[`NSSecureCoding`](/documentation/Foundation/NSSecureCoding)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Equatable`](/documentation/Swift/Equatable)

[`Hashable`](/documentation/Swift/Hashable)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`CVarArg`](/documentation/Swift/CVarArg)

[`NSCoding`](/documentation/Foundation/NSCoding)

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

[`Sendable`](/documentation/Swift/Sendable)

[`NSCopying`](/documentation/Foundation/NSCopying)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)