Menu
Coddy logo textTech

데이터 전달

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)
    }
}

각 행에는 해당 레시피의 상세 화면으로 연결되는 링크가 추가됩니다. 상세 뷰는 목록에 대해 전혀 알 필요가 없습니다.

challenge icon

챌린지

중급

RecipeDetail을 완성하세요. 레시피의 minutes를 사용하여 텍스트에 Ready in 15 minutes를 표시하고, 식별자를 time으로 설정하며, 레시피의 이름을 제목으로 사용합니다. 그런 다음 각 목록 행을 레시피의 이름을 제목으로 하는 NavigationLink로 만들어 해당 레시피의 RecipeDetail을 엽니다.

직접 해보기

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

SwiftUI 입문의 모든 레슨

직접 연습해 보세요: Swift 플레이그라운드