【SwiftUI】ポップアップに”二度と表示しない”のトグルをつける

最初だけポップアップが表示されて、次回からはユーザーがポップアップの有無を選べるトグル。

あれの実装方法です。

.sheetでポップアップを表示します。AppStorageを使って「二度と表示しない」をBooleanで設定して置けばOK

import SwiftUI

struct ContentView: View {
    @AppStorage("dontShowAgain") var dontShowAgain = false
    @State private var showingPopup = false

    var body: some View {
        VStack {
            Button("Show Popup") {
                if !dontShowAgain {
                    showingPopup = true
                }
            }
        }
        .sheet(isPresented: $showingPopup) {
            HowToSetIcon(dontShowAgain: $dontShowAgain)
        }
    }
}

popupViewの中身

import SwiftUI

struct PopupView: View {
    @Environment(\.presentationMode) var presentationMode
    @Binding var dontShowAgain: Bool

    var body: some View {
        VStack {
            Text("This is a popup")

            Toggle(isOn: $dontShowAgain) {
                Text("二度と表示しない")
            }

            Button("Close") {
                self.presentationMode.wrappedValue.dismiss()
            }
        }
    }
}
コイアイちゃん Avatar

この記事を書いたのは


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA