представление уведомления о подтверждении после предупреждения с неработающим 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}
}
}