SwiftUI Academy · Leçon

Partager des modèles via @Environment

Injectez un modèle dans l’environnement de la vue.

Leçon 4 sur 413 étapes

Partager des modèles via @Environment est une leçon SwiftUI Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SwiftUI Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SwiftUI Academy comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Sharing Down Many Levels

Passing a model through every view in between gets tedious. The environment lets deep child views reach it directly.

What the Environment Is

The environment is a shared bag of values flowing down the view tree, so any descendant can read what an ancestor placed there.

Injecting with .environment

Place an observable model into the tree with the .environment modifier on a parent view.

ContentView()
    .environment(model)

Reading with @Environment

A child reads the shared model by declaring a property with the @Environment wrapper and the model type.

@Environment(Counter.self) private var model

Matching by Type

The environment finds the model by its type, so the type you inject must match the type a child asks for.

No Manual Passing

Children no longer need the model handed through every initializer. They simply pull it from the environment when needed.

Using the Shared Model

Once read, the environment model behaves like any other: read its values and call its methods.

Text("\(model.count)")
Button("Add") { model.increment() }

One Instance, Many Readers

Everyone reads the same injected instance, so changes made in one screen show up everywhere that reads it.

Inject Once, High Up

Inject the model near the top of the tree, often at the app root, so every screen below can share it.

WindowGroup {
    RootView().environment(model)
}

Owner Still Uses @State

One view still owns the model with @State and injects it. The environment only shares that single instance downward.

Missing Model Crashes

If a child reads a model the environment never received, the app crashes, so always inject before any reader appears.

Quick Check

Final check on sharing through the environment.

Recap

You shared one model across the view tree using @Environment: inject it high up, then read it by type in any descendant. 🌍

Gratuit pour commencer

Apprends Swift avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Partager des modèles via @Environment » est-elle gratuite ?

Oui — le texte complet de « Partager des modèles via @Environment » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SwiftUI Academy, passe à CoddyKit PRO. Le cours SwiftUI Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Partager des modèles via @Environment » ?

Injectez un modèle dans l’environnement de la vue. Tu pratiques SwiftUI Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer SwiftUI Academy ?

Aucune expérience préalable n'est requise. SwiftUI Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Partager des modèles via @Environment » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon SwiftUI Academy ?

Oui. Chaque leçon SwiftUI Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. De l’état d’une vue à une classe de modèle
  2. La macro @Observable
  3. @State pour les objets possédés
  4. Partager des modèles via @Environment
← Retour à SwiftUI Academy