我使用以下按钮在SwiftUI中切换工作表
Button(action: {
self.statusPopoverIsShown.toggle()
})
因此出现以下表格
.sheet(isPresented: self.$popoverIsShown) {
RandomSheet(popoverIsShown: self.$popoverIsShown)
}
然后,我在RandomSheet
内有一个按钮可关闭工作表(将popoverIsShown设置为false)。一切正常。
但是当我开始在拆分屏幕中使用该应用程序或以某种方式更改大小类时,SwiftUI会将工作表转换为类似iPhone的全屏工作表,并且关闭按钮/绑定不再起作用。
有什么解决方法可以避免这种情况并保持绑定稳定?
答案 0 :(得分:1)
以下内容适用于任何尺寸类别的更改。经过Xcode 12 / iOS 14的测试
struct TestSheet: View {
@State private var popoverIsShown = false
var body: some View {
Button("Show Sheet") {
self.popoverIsShown = true
}
.sheet(isPresented: self.$popoverIsShown) {
RandomSheet(popoverIsShown: self.$popoverIsShown)
}
}
}
struct RandomSheet: View {
@Binding var popoverIsShown: Bool
var body: some View {
Button("Close") { self.popoverIsShown = false }
}
}