@EnvironmentObject
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() }
}
}
Yuqoridagi misolda umumiy obyekt ajdod view’dan .environmentObject yordamida taqdim etiladi va avlod view’larda @EnvironmentObject orqali ishlatiladi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
