представление уведомления о подтверждении после предупреждения с неработающим swiftui

Я пытаюсь показать подтверждающее уведомление после того, как вы нажмете кнопку "Подтвердить" в первом предупреждении. Идея: вы нажимаете кнопку, и появляется всплывающее сообщение с просьбой отменить или подтвердить действие. Когда вы нажимаете "Отмена", предупреждение закрывается, а когда вы нажимаете "Подтвердить", действие выполняется, и появляется второе предупреждение, в котором говорится что-то вроде (заголовок: "Успешно", сообщение: "Действие выполнено успешно)" с простой кнопкой отклонения.. Первое предупреждение работает нормально и выполняет свое действие, но когда я добавляю второе предупреждение сразу после первого предупреждения, первое предупреждение больше не будет отображаться при нажатии кнопки.

код:

Group {
            Button(action: { self.showingAdminAlert = true }, label: {
                                    Text("Als Admin hinzufügen").fontWeight(.bold).font(.system(size: 15)).padding().background(Color.gray).cornerRadius(40).foregroundColor(.white).padding(10).overlay(RoundedRectangle(cornerRadius: 40).stroke(Color.gray, lineWidth: 5))
            }).padding().padding()
            }.alert(isPresented: $showingAdminAlert) {
                Alert(title: Text("Bestätigung erforderlich"), message: Text("Wollen sie \(data.vn) \(data.nn) wirklich die Berechtigung Admin erteilen?"), primaryButton: .cancel(Text("Abbrechen")), secondaryButton: .default(Text("Bestätigen")) {
                    self.AddUserAsAdmin()
                    self.showingAdminAlertConfirmation = true
                    })
            }.alert(isPresented: $showingAdminAlertConfirmation) {
                Alert(title: Text("Erfolgreich"), message: Text("Berechtigung Admin erfolgreich an \(data.vn) \(data.nn) vergeben!"), dismissButton: .default(Text("Zurück")))
            }

1 ответ

import SwiftUI

struct ContentView: View
{
    @State var showAlert: Bool = false
    @State var showingAdminAlertConfirmation: Bool = false

    var body: some View {
        
        let Bestätigung =  Alert(title: Text("Bestätigung erforderlich"), message: Text("wirklich die Berechtigung Admin erteilen?"), primaryButton: .cancel(Text("Abbrechen")), secondaryButton: .default(Text("Bestätigen")) {showingAdminAlertConfirmation = true; DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {showAlert = true}  }   )
        let Erfolgreich = Alert(title: Text("Erfolgreich"), message: Text("Berechtigung Admin erfolgreich an vergeben!"), dismissButton: .default(Text("Zurück")) {showAlert = false; showingAdminAlertConfirmation = false}   )

        Button(action: { showAlert = true }, label: {
            Text("Als Admin hinzufügen").fontWeight(.bold).font(.system(size: 15)).padding().background(Color.gray).cornerRadius(40).foregroundColor(.white).padding(10).overlay(RoundedRectangle(cornerRadius: 40).stroke(Color.gray, lineWidth: 5))
        })
        .padding().padding()
        .alert(isPresented: $showAlert) { showingAdminAlertConfirmation ? Erfolgreich : Bestätigung}

        
        
        
    }
}
Другие вопросы по тегам