Concept

  • @EnvironmentObject injects shared, observable data into the view hierarchy, allowing any child view to access it without explicit passing.

Example

class UserData: ObservableObject {
    @Published var username: String = ""
}
 
struct ContentView: View {
    @StateObject var userData = UserData()
    var body: some View {
        NavigationStack {
            HomeView().environmentObject(userData)
        }
    }
}

Source