Menu
Coddy logo textTech

シートとアラート

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ボタンが1つあるアラートを表示します。showSaved状態を使用します。

自分で試してみよう

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

SwiftUI入門のすべてのレッスン

自分で練習してみよう: Swiftプレイグラウンド