インスタンスメソッド


environment(_:)


ビューの環境に監視可能なオブジェクトを配置します。


iOS 17.0+ iPadOS 17.0+ Mac Catalyst 17.0+ macOS 14.0+ tvOS 17.0

visionOS 1.0+ watchOS 10.0+

nonisolated
func environment<T>(_ object: T?) -> some View where T : AnyObject, T : Observable




パラメータ


object

環境内でこのオブジェクトの型に設定すべきオブジェクト、または環境からこの型のオブジェクトをクリアすべき場合は nil です。



戻り値


指定されたオブジェクトをその環境内に持つビュー。



議論


この修飾子を使用すると、Observable() マクロで宣言したオブジェクトをビューの環境に配置することができます。例えば、カスタムの監視可能な Profile クラスのインスタンスを ContentView の環境に追加できます。


@Observable class Profile { ... }

struct RootView: View {
    @State private var currentProfile: Profile?

    var body: some View {
        ContentView()
            .environment(currentProfile)
    }
}

次に、Environment プロパティラッパーを使用して、ContentView またはその子孫のいずれかの内部のオブジェクトを読み取ります。


struct ContentView: View {
    @Environment(Profile.self) private var currentProfile: Profile

    var body: some View { ... }
}

この修飾子は、与えられたビューとその子孫ビューの両方に影響します。この修飾子を呼び出したビュー階層の外部には全く影響しません。与えられたビュー階層の環境には、与えられた型の監視可能なオブジェクトが 1 つだけ保持されます。


注意

この修飾子は、Observable プロトコルに準拠するオブジェクトを取ります。ObservableObject プロトコルに準拠する環境オブジェクトを追加するには、代わりに environmentObject(_:) を使用してください。





以下も見よ


ビューの環境を変更する


func environment<V>(WritableKeyPath<EnvironmentValues, V>, V) -> some View

指定されたキーパスの環境値を与えられた値に設定します。


func transformEnvironment<V>(WritableKeyPath<EnvironmentValues, V>, transform: (inout V) -> Void) -> some View

指定されたキーパスの環境値を与えられた関数で変換します。















トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ