Как представить предупреждение из пользовательского представления внутри меню в SwiftuiIOS

Программируем под IOS
Anonymous
Как представить предупреждение из пользовательского представления внутри меню в Swiftui

Сообщение Anonymous »

Я пытаюсь создать многоразовую кнопку в Swiftui, которая представляет предупреждение при постуке. Он работает отлично, когда используется непосредственно в иерархии представления, но не может представить оповещение при использовании в меню .
Вот пример:

Код: Выделить всё

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 работает за пределами меню , однако тот же DeleteButton не показывает предупреждение, когда помещается в меню .
В идеале я хотел бы сохранить логику предупреждения внутри Deletebutton и все еще работать внутри в меню. Как я могу это сделать?

Подробнее здесь: https://stackoverflow.com/questions/796 ... in-swiftui

Вернуться в «IOS»