title: In SwiftUI, can I pass @EnvironmentObject not in the SceneDelegate? Like pass it in any View
body: <p>My question is simple, since @EnvironmentObject can be used to share object between multiple view, and in almost all tutorials the @EnvironmentObject objects are all setup and passed in the SceneDelegate like this:</p>
  
  <pre><code>let userSettings = UserSettings()
  let contentView = UserSettingsDemo().environmentObject(userSettings)
  window.rootViewController = UIHostingController(rootView: contentView)
  </code></pre>
  
  <p>Can I pass my @EnvironmentObject object not in the SceneDelegate, but rather in any other View? 
  for example in UserSettingsDemo.swift:</p>
  
  <pre><code>struct UserSettingsDemo: View {
  var userSettings: UserSettings
  
  var body: some View {
      VStack {
          //this is child view, and it may have other child views inside it, 
          //Like I said, I pass the @EnvironmentObject userSettings here as the 
          //start point, not in the SceneDelegate, so that FancyScoreView's child views
          //can use userSettings as @EnvironmentObject
          FancyScoreView().environmentObject(userSettings)
      }
  }
  </code></pre>
  
  <p>}</p>
  
  <p>Can I use @EnvironmentObject like above what I said? 
  The reason I'm asking this question is that in lots of scenarios we couldn't or it's not feasible to pass all we think it's 'Global' to SceneDelegate. Sometimes we can only get something that need to be global in the mid way. sometimes it's even a bad practice to pass all global stuff right in the start point of the app.</p>