Get your own website
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() }
  }
}