데이터 전달
Coddy Swift 여정의 SwiftUI 입문 섹션에 포함된 레슨. 50개 중 36번째.
상세 화면은 일반적으로 표시할 데이터를 위한 속성을 가진 자체 뷰 구조체입니다:
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을 완성하세요. 레시피의 minutes를 사용하여 텍스트에 Ready in 15 minutes를 표시하고, 식별자를 time으로 설정하며, 레시피의 이름을 제목으로 사용합니다. 그런 다음 각 목록 행을 레시피의 이름을 제목으로 하는 NavigationLink로 만들어 해당 레시피의 RecipeDetail을 엽니다.
직접 해보기
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
SwiftUI 입문의 모든 레슨
직접 연습해 보세요: Swift 플레이그라운드