我使用以下按钮在 SwiftUI 中切换工作表
Button(action: {
self.statusPopoverIsShown.toggle()
})
所以出现了下面的表格.sheet(isPresented: self.$popoverIsShown) {
RandomSheet(popoverIsShown: self.$popoverIsShown)
}
然后我在 RandomSheet
中有一个按钮关闭工作表(将 popoverIsShown 设置为 false)。一切正常。但是,当我开始在分屏中使用该应用程序或以某种方式更改 sizeclass 时,SwiftUI 会将工作表转换为类似 iPhone 的全屏工作表,并且关闭按钮/绑定(bind)不再起作用。
是否有任何解决方案可以避免这种情况并保持绑定(bind)稳定?
最佳答案
以下适用于任何大小类更改。使用 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 }
}
}
关于ios - SWIFTUI:更改 ScreenSize 类后无法关闭工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63070214/