シートとアラート
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()アクションが提供されます。
チャレンジ
中級ユーザーがSaveをタップしたら、タイトルがSaved!で、メッセージがYour note is stored.、OKボタンが1つあるアラートを表示します。showSaved状態を使用します。
自分で試してみよう
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
SwiftUI入門のすべてのレッスン
自分で練習してみよう: Swiftプレイグラウンド