Передача данных в подробные представления
Передавайте выбранный элемент на следующий экран.
«Передача данных в подробные представления» — бесплатный урок SwiftUI Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения SwiftUI Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс SwiftUI Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Detail Screens Need Data
A detail screen is only useful if it knows which item to show. So when you push it, you hand the selected piece of data straight into the new view. 📦
Pass Through the Initializer
The cleanest way to send data is the detail view initializer. Store the value in a property, then read it inside the body.
struct DetailView: View {
let title: String
var body: some View { Text(title) }
}Wire It in the Link
In the NavigationLink destination, create the detail view and pass the value in. The chosen item flows directly into the next screen.
NavigationLink("Open") {
DetailView(title: "Welcome")
}Passing a Whole Model
You are not limited to strings. Pass an entire struct so the detail screen has every field it needs at once.
struct Book { let title: String; let author: String }
DetailView(book: selectedBook)Looping With Data
Inside a ForEach you can hand each item to its own link, so every row pushes a detail view filled with that exact element.
ForEach(books) { book in
NavigationLink(book.title) { DetailView(book: book) }
}Value Types Copy Safely
Because structs are value types, the detail view gets its own copy. Reading it cannot accidentally change the list behind you.
Show Real Detail
With the model in hand, the detail view can display anything: title, author, description, even computed text built from those fields.
var body: some View {
VStack {
Text(book.title).font(.title)
Text(book.author)
}
}Prefer the Newer Pattern
For data-driven links, attach a value and let a navigationDestination decide the view. It keeps your row code short and reusable.
NavigationLink(book.title, value: book)Match the Type
A navigationDestination handles one data type. SwiftUI looks at the value type you pushed and routes it to the matching destination builder.
.navigationDestination(for: Book.self) { book in
DetailView(book: book)
}Keep Detail Views Focused
A detail view should receive its data, not fetch it. Passing data in keeps the screen reusable and easy to preview with sample values.
Watch the Direction
Data flows forward, into the detail. To send changes back to the parent later, you will reach for bindings, which come in a future course.
Quick Check
What is the simplest way to give a detail view the item it should display?
Recap: Passing Data
You pass the chosen item into the detail view through its initializer, often a whole struct, so each screen shows exactly the right content. 🎯
Часто задаваемые вопросы
Урок «Передача данных в подробные представления» бесплатный?
Да — полный текст урока «Передача данных в подробные представления» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс SwiftUI Academy, подпишись на CoddyKit PRO. Курс SwiftUI Academy содержит 4 уроков всего.
Чему я научусь в уроке «Передача данных в подробные представления»?
Передавайте выбранный элемент на следующий экран. Ты практикуешь SwiftUI Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать SwiftUI Academy?
Предыдущий опыт не требуется. SwiftUI Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Передача данных в подробные представления»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке SwiftUI Academy?
Да. Каждый урок SwiftUI Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Переход между экранами с NavigationLink
- Передача данных в подробные представления
- Панель инструментов и заголовок навигации
- Программные пути навигации