---
title: "init(id:for:content:)"
framework: swiftui
role: symbol
role_heading: Initializer
path: "swiftui/immersivespace/init(id:for:content:)"
---

# init(id:for:content:)

Creates the immersive space associated with an identifier for a specified type of presented data.

## Declaration

```swift
nonisolated init(id: String, for type: Data.Type, @ImmersiveSpaceContentBuilder content: @escaping (Binding<Data?>) -> Content)
```

## Parameters

- `id`: A string that uniquely identifies the immersive space. Ensure that identifiers are unique among the immersive spaces in your app.
- `type`: The type of presented data this immersive space accepts.
- `content`: An immersive space content builder that defines the content for each instance of the immersive space. The closure receives a binding to the value that you pass to the doc://com.apple.SwiftUI/documentation/SwiftUI/EnvironmentValues/openImmersiveSpace action when you call that action to open an immersive space. The system automatically persists and restores the value of this binding during state restoration.

## Discussion

Discussion The space uses the specified content builder to form the content. Your app invokes this initializer when it presents a value of the specified type using the openImmersiveSpace action.

## See Also

### Creating a data-driven immersive space

- [init(for:content:)](swiftui/immersivespace/init(for:content:).md)
