---
title: "callAsFunction(id:value:)"
framework: swiftui
role: symbol
role_heading: Instance Method
path: "swiftui/openimmersivespaceaction/callasfunction(id:value:)"
---

# callAsFunction(id:value:)

Presents the immersive space that your app defines for the specified identifier and that handles the type of the presented value.

## Declaration

```swift
@discardableResult @MainActor func callAsFunction<D>(id: String, value: D) async -> OpenImmersiveSpaceAction.Result where D : Decodable, D : Encodable, D : Hashable
```

## Parameters

- `id`: The identifier of the immersive space to present.
- `value`: The value to present.

## Discussion

Discussion Don’t call this method directly. SwiftUI calls it when you call the openImmersiveSpace action with a string identifier and a value: await openImmersiveSpace(id: "planet", value: planet.ID) For information about how Swift uses the callAsFunction() method to simplify call site syntax, see Methods with Special Names in The Swift Programming Language.

## See Also

### Calling the action

- [callAsFunction(id:)](swiftui/openimmersivespaceaction/callasfunction(id:).md)
- [callAsFunction(value:)](swiftui/openimmersivespaceaction/callasfunction(value:).md)
