Вот пример:
Код: Выделить всё
struct ContentView: View {
var body: some View {
HStack(spacing: 30) {
Menu("Open Menu") {
// This does not work.
DeleteButton("Delete", message: "Are you sure you want to delete this?") {
print("Deleted")
}
}
// This works.
DeleteButton("Delete", message: "Are you sure you want to delete this?") {
print("Deleted")
}
}
}
}
struct DeleteButton: View {
var title: String
var message: String
var action: () -> Void
@State private var showAlert = false
init(_ title: String, message: String, action: @escaping () -> Void) {
self.title = title
self.message = message
self.action = action
}
var body: some View {
Button(title, systemImage: "trash", role: .destructive) {
showAlert = true
}
.alert("Delete Confirmation", isPresented: $showAlert) {
Button("Delete", role: .destructive, action: action)
Button("Cancel", role: .cancel) { }
} message: {
Text(message)
}
}
}
В идеале я хотел бы сохранить логику предупреждения внутри Deletebutton и все еще работать внутри в меню. Как я могу это сделать?
Подробнее здесь: https://stackoverflow.com/questions/796 ... in-swiftui
Мобильная версия