Xcode Beta 6 中的 SwiftUI 模态?



以前在 SwiftUI (Xcode Beta 5( 中,模态的工作方式如下:

struct ContentView: View {
@State var modalIsPresented: Bool = false
var body: some View {
Button(action: {
self.modalIsPresented = true
}) {
Text("Show modal")
}
.sheet(isPresented: $modalIsPresented, content: {
ModalView()
})
}
}
struct ModalView: View {
@Environment(.presentationMode) var presentationMode
var body: some View {
Button(action: {
self.presentationMode.value.dismiss()
}) {
Text("Hide modal")
}
}
}

但是现在在 Xcode Beta 6 中,我找不到一种方法来关闭模态。不再有presentationModevalue属性,其他属性似乎没有任何有用的方法可以使用。

如何在 Xcode Beta 6 中关闭 SwiftUI 模式?

使用wrappedValue而不是value似乎在 Xcode Beta 6 中有效:

self.presentationMode.wrappedValue.dismiss()

您可以通过传入控制它显示的绑定来忽略.sheet.popover.actionSheet,此处$modalIsPresented并将其设置为 false 以编程方式关闭它。

尝试检查一下:

.presentation(showModal ? Modal(Text("Modal screen"), onDismiss: {
self.showModal.toggle()
}) : nil)

默认的模态表示不会证明用户关闭模态的任何视觉方式,但从 iOS 13 开始,用户可以向下滑动视图以使其消失。

详细内容:https://alejandromp.com/blog/2019/06/24/improving-swiftui-modal-presentation-api/

相关内容

  • 没有找到相关文章

最新更新