Menu
Coddy logo textTech

Передача данных

Часть раздела Введение в 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)
    }
}

Каждая строка получает ссылку на экран с подробной информацией о своём рецепте. Представлению с подробной информацией вообще не нужно знать о списке.

challenge icon

Задание

Средне

Заверши RecipeDetail: он отображает Ready in 15 minutes (используя minutes рецепта) в тексте с идентификатором time и использует название рецепта в качестве заголовка. Затем сделай каждую строку списка NavigationLink с названием рецепта в качестве заголовка, который открывает RecipeDetail для этого рецепта.

Попробуйте сами

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Введение в SwiftUI

Потренируйтесь самостоятельно: Песочница Swift