Contents

environment(_:_:)

Sets the environment value of the specified key path to the given value.

Declaration

nonisolated func environment<V>(_ keyPath: WritableKeyPath<EnvironmentValues, V>, _ value: V) -> some Scene

Parameters

  • keyPath:

    A key path that indicates the property of the Environmentvalues structure to update.

  • value:

    The new value to set for the item specified by keyPath.

Return Value

A view that has the given value set in its environment.

Discussion

Use this modifier to set one of the writable properties of the EnvironmentValues structure, including custom values that you create. For example, you can create a custom environment key styleOverrides to set a value that represents style settings that for the entire app:

WindowGroup {
    ContentView()
}
.environment(\.styleOverrides, StyleOverrides())

You then read the value inside ContentView or one of its descendants using the Environment property wrapper:

struct MyView: View {
    @Environment(\.styleOverrides) var styleOverrides: StyleOverrides

    var body: some View { ... }
}

This modifier affects the given scene, as well as that scene’s descendant views. It has no effect outside the view hierarchy on which you call it.

See Also

Modifying the environment of a scene