Dans swiftUI
, j'ai découvert le type Alert
. Mais je me demande comment le montrer avec la méthode presentation
.
L'initialisation d'un Alert
est assez facile. Mais comment utiliser la reliure?
struct ContentView : View {
var body: some View {
Button(action: {
// Don't know how to use the `binding` below
presentation(binding, alert: {
Alert(title: Text("Hello"))
})
}, label: {
Text("asdf")
})
}
}
La liaison est de type Binding<Bool>
struct ContentView: View {
@State var aAlert = false
var body: some View {
Text("Alert").tapAction {
self.aAlert = true
}.presentation($aAlert, alert:{ Alert(title: Text("Alert"))})
}
}
En plus de la réponse de @ tsp, pour afficher une alerte avec deux boutons et actionner le bouton de la poignée, vous pouvez procéder comme suit:
@State var showAlert = false
var body: some View {
Button(action: {
self.showAlert = true
}) {
Text("Show Alert")
}
.presentation($showAlert) {
Alert(title: Text("Title"), message: Text("Message..."),
primaryButton: .default (Text("OK")) {
print("OK button tapped")
},
secondaryButton: .cancel()
)
}
}
Résultat:
SwiftUI
Créez d'abord une alerte de base:
Alert(title: Text("Alert title"), message: Text("Alert message"), dismissButton: .default(Text("Got it!")))
Définissez ensuite une condition pouvant être liée qui indique quand l'alerte sera visible ou non. Basculez cette condition pour afficher/masquer l'alerte.
struct ContentView: View {
@State private var showingAlert = false
var body: some View {
Button(action: {
self.showingAlert = true
}) {
Text("Show Alert")
}
.alert(isPresented: $showingAlert) {
Alert(title: Text("Important message"), message: Text("Wear sunscreen"), dismissButton: .default(Text("Got it!")))
}
}
}