Demo.swift
ContentView.swift
App.swift
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 Theme") { 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() }
}
}