確認ダイアログに独自のデータを受け渡すには?

この記事は約3分で読めます。
  • iOS:15.0以上
  • XCode(当サイトの環境):15.0.1

本記事では確認ダイアログを表示する際に、独自で準備したデータを使用する方法を紹介します。

確認ダイアログの基本的な使用方法は以下のページを参照してください。

サンプルコード

import SwiftUI

struct ConfirmationSmp: View {
    @State private var showingConfirmation = false
    @State private var dialogDetail: ConfirmDetails?
    
    var body: some View {
        Button("Show Confirmation") {
            showingConfirmation = true
            dialogDetail = ConfirmDetails(
                            name: "Confirm Name", detail: "Tap Button")
        }
        .confirmationDialog(
            Text("Delete Item"),
            isPresented: $showingConfirmation, presenting: dialogDetail
        ) { detail in
            Button(detail.name) {
                // detail action
                print(detail.detail)
            }
            Button("キャンセル", role: .cancel) {
                // cancel action
            }
        }
    }
}

struct ConfirmDetails: Identifiable {
    let id = UUID()
    let name: String
    let detail: String
}

ConfirmDetailsとしてstructを定義してpresentingに渡すことで使用可能です。
Show Confirmationボタンをタップ時にあらかじめ格納しておいたボタン名称(”Confirm Name”)を表示させています。

そして、確認ダイアログにおいて、”Confilm Name”ボタンをタップすると、事前に格納しておいた”Tap Button”がコンソールに表示されます。

まとめ

このように確認ダイアログに独自で定義したデータを受け渡して活用することも可能です。

タイトルとURLをコピーしました