Menu
Coddy logo textTech

データの受け渡し

CoddyのSwiftジャーニー「SwiftUI入門」セクションの一部。レッスン 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)
    }
}

各行には、そのレシピの詳細画面へのリンクが設定されます。詳細ビューはリストについて何も知る必要がありません。

challenge icon

チャレンジ

中級

RecipeDetailを完成させます。レシピのminutesを使用して、識別子timeを持つテキストにReady in 15 minutesと表示し、レシピの名前をタイトルとして使用します。次に、各リスト行をレシピの名前をタイトルとするNavigationLinkにし、そのレシピのRecipeDetailを開くようにします。

自分で試してみよう

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

SwiftUI入門のすべてのレッスン

自分で練習してみよう: Swiftプレイグラウンド