Menu
CoddyTech

工作表与警告框

本课属于 Coddy Swift 学习旅程的“SwiftUI 入门”单元。第 37 课,共 50 课。

工作表会将一个视图向上滑入当前屏幕上方。当 Bool 状态为 true 时,它会显示:

@State private var showHelp = false

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

警告框会提出一个简短的问题。它的工作方式相同,包含标题、按钮和可选的消息:

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 入门中的所有课

自己练习: SwiftUI 在线编辑器