我试图通过设置变量使弹出窗口消失,将其显示为false。
示例代码行为相当奇怪。 有没有更好的方法来使用“取消”按钮程序性地关闭弹出窗口?
import SwiftUI
struct ContentView: View {
let lines = ["line 1", "line 2","line 3"]
var body: some View {
List {
ForEach(lines, id: \.self)
{ Line(text: $0)
}
}
}
}
struct Line: View {
@State var text: String
@State var showSheet = false
var body: some View {
VStack
{ Text("\(text)")
.onTapGesture {
self.showSheet = true
}
}.popover( isPresented: self.$showSheet,
arrowEdge: .trailing
)
{ Pop(showSheet: self.$showSheet)
}
}
}
struct Pop: View {
@Binding var showSheet: Bool
var body: some View {
VStack {
Text("Option 1")
Text("Option 2")
Button("Cancel")
{ self.showSheet = false
}
}
}
}