تمرير البيانات
جزء من قسم مقدمة إلى SwiftUI في رحلة Swift على Coddy. الدرس 36 من 50.
تكون شاشة التفاصيل عادةً عبارة عن بنية عرض خاصة بها، تحتوي على خاصية للبيانات التي تعرضها:
struct RecipeDetail: View {
let recipe: Recipe
var body: some View {
Text("Ready in \(recipe.minutes) minutes")
.navigationTitle(recipe.name)
}
}تمنح Swift البنية مُهيّئًا بمعلمة لكل خاصية مخزّنة، لذا تُنشئها RecipeDetail(recipe: pancakes). في قائمة، يمرّر كل رابط بيانات صفّه الخاص:
List(recipes) { recipe in
NavigationLink(recipe.name) {
RecipeDetail(recipe: recipe)
}
}يحصل كل صف على رابط إلى شاشة تفاصيل لوصفته. لا يحتاج عرض التفاصيل إلى معرفة أي شيء عن القائمة على الإطلاق.
التحدي
متوسطأكمل RecipeDetail: يعرض Ready in 15 minutes (باستخدام minutes الخاص بالوصفة) في نص ذي معرّف time، ويستخدم اسم الوصفة عنوانًا له. ثم اجعل كل صف في القائمة عبارة عن NavigationLink بعنوان اسم الوصفة، ويفتح RecipeDetail لتلك الوصفة.
جرّب بنفسك
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس مقدمة إلى SwiftUI
تدرّب بنفسك: Playground لـ Swift