如何解决移除列表行后,SwiftUI .popover关闭将无法工作
我有一个SwiftUI列表,其中包含一个拇指行。单击时,此拇指会打开一个带有较大版本图片的弹出窗口。
我面临的问题是,当从列表中删除其弹出框处于打开状态的行时,该弹出框将保持打开状态,并且无法关闭它,最终导致UI无法使用。
我的目标是当从列表中删除该行时自动关闭弹出窗口。
以下是该行主体的剥离版本。我使用Button是因为它比onTapGesture事件更可靠。
@State private var showPopover: Bool = false
var body: some View {
Button(action: { self.showPopover = true }) {
Image(systemName: "photo")
.onDisappear { self.showPopover = false}
}
.popover(isPresented: $showPopover,arrowEdge: .leading) {
Image(systemName: "photo")
}
}
解决方法
您使用此:
要关闭,请向下滑动或点击“后退”按钮! (我保证它会被解雇)100%
import SwiftUI
struct ContentView: View {
@State private var showModalView: Bool = false
var body: some View {
VStack
{
Button("showModalView") {showModalView.toggle()}
}
.sheet(isPresented: $showModalView,content: {
ZStack
{
Color.red
.ignoresSafeArea()
Button("← Back"){showModalView.toggle()}.foregroundColor(Color.black)
}
})
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。