@EnvironmentObject


ULASHISH

SwiftUI ma’lumotlar oqimi: @EnvironmentObject

Butun ilova bo‘yicha umumiy state’ni ajdod view’dan taqdim eting va uni @EnvironmentObject bilan ishlating.


@EnvironmentObject bilan butun ilova bo‘yicha state’ni ulashish

Umumiy obyektni ajdod view’dan .environmentObject yordamida taqdim eting va uni avlod view’larda @EnvironmentObject orqali ishlating.

Misol

import SwiftUI

final class AppSettings: ObservableObject { @Published var theme = "Light" }

struct Root: View {
  @StateObject private var settings = AppSettings()
  var body: some View {
    VStack(spacing: 8) {
      Button("Toggle") { settings.theme = (settings.theme == "Light") ? "Dark" : "Light" }
      Child()
    }
    .environmentObject(settings)
    .padding()
  }
}

struct Child: View {
  @EnvironmentObject var settings: AppSettings
  var body: some View { Text("Theme: \(settings.theme)") }
}
import SwiftUI

struct ContentView: View {
  var body: some View { Root() }
}
import SwiftUI

@main
struct MyApp: App {
  var body: some Scene {
    WindowGroup { ContentView() }
  }
}

Misolni ishga tushirish »

Yuqoridagi misolda umumiy obyekt ajdod view’dan .environmentObject yordamida taqdim etiladi va avlod view’larda @EnvironmentObject orqali ishlatiladi.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!