Menu
Coddy logo textTech

Листы и оповещения

Часть раздела Введение в SwiftUI путешествия по Swift на Coddy. Урок 37 из 50.

Лист выдвигает представление поверх текущего экрана. Он отображается, когда состояние типа Bool имеет значение true:

@State private var showHelp = false

Button("Help") { showHelp = true }
    .sheet(isPresented: $showHelp) {
        Text("Swipe down to close")
    }

Alert задаёт короткий вопрос. Он работает так же: с заголовком, кнопками и необязательным сообщением:

Button("Delete") { askDelete = true }
    .alert("Delete photo?", isPresented: $askDelete) {
        Button("Delete", role: .destructive) { deletePhoto() }
        Button("Cancel", role: .cancel) { }
    } message: {
        Text("This cannot be undone.")
    }

Нажатие любой кнопки оповещения выполняет её действие и закрывает оповещение, возвращая состояние к значению false. Внутри листа @Environment(\.dismiss) var dismiss предоставляет действие dismiss(), которое закрывает его из кода.

challenge icon

Задание

Средне

Когда пользователь нажимает Save, покажите предупреждение с заголовком Saved!, сообщением Your note is stored. и одной кнопкой OK. Используйте состояние showSaved.

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

import SwiftUI

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

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

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

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