Transmission de données
Fait partie de la section Introduction à SwiftUI du Journey Swift de Coddy. Leçon 36 sur 50.
Un écran de détails est généralement sa propre structure de vue avec une propriété contenant les données qu’il affiche :
struct RecipeDetail: View {
let recipe: Recipe
var body: some View {
Text("Ready in \(recipe.minutes) minutes")
.navigationTitle(recipe.name)
}
}Swift fournit à la structure un initialiseur avec un paramètre pour chaque propriété stockée, donc RecipeDetail(recipe: pancakes) la crée. Dans une liste, chaque lien transmet les données de sa propre ligne :
List(recipes) { recipe in
NavigationLink(recipe.name) {
RecipeDetail(recipe: recipe)
}
}Chaque ligne reçoit un lien vers un écran de détails pour sa recette. La vue détaillée n’a pas du tout besoin de connaître la liste.
Défi
MoyenTermine RecipeDetail : il affiche Ready in 15 minutes (en utilisant les minutes de la recette) dans un texte portant l’identifiant time, et utilise le nom de la recette comme titre. Ensuite, transforme chaque ligne de la liste en un NavigationLink intitulé avec le nom de la recette, qui ouvre RecipeDetail pour cette recette.
Essayez vous-même
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Introduction à SwiftUI
4Modificateurs
Marge intérieureArrière-plansOrdre des modificateursCadres et formesRécapitulatif - Créateur de badges2Afficher du contenu
Vues de texteNombres dans le textePolicesCouleursSymboles SFRécapitulatif - Étiquette de prix5État et boutons
BoutonsLa propriété @StateÉtat vrai ou fauxVues conditionnellesRécapitulatif - Compteur de score8Navigation
NavigationStackNavigationLinkTransmission de donnéesFeuilles et alertesRécapitulatif - Guide des plantesEntraînez-vous par vous-même : Playground Swift