SwiftUI关闭模态 [英] SwiftUI dismiss modal
本文介绍了SwiftUI关闭模态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
由于SwiftUI是声明性的,因此没有dismiss
方法.
如何在DetailView
上添加一个关闭/关闭按钮?
Since SwiftUI is declarative there is no dismiss
methode.
How can is add a dismiss/close button to the DetailView
?
struct DetailView: View {
var body: some View {
Text("Detail")
}
}
struct ContentView : View {
var body: some View {
PresentationButton(Text("Click to show"), destination: DetailView())
}
}
推荐答案
您可以在模态视图中使用presentationMode
环境变量,然后调用self.presentaionMode.wrappedValue.dismiss()
消除模态:
You can use presentationMode
environment variable in your modal view and calling self.presentaionMode.wrappedValue.dismiss()
to dismiss the modal:
struct ContentView: View {
@State private var showModal = false
var body: some View {
Button(action: {
self.showModal = true
}) {
Text("Show modal")
}.sheet(isPresented: self.$showModal) {
ModalView()
}
}
}
struct ModalView: View {
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
var body: some View {
Group {
Text("Modal view")
Button(action: {
self.presentationMode.wrappedValue.dismiss()
}) {
Text("Dismiss")
}
}
}
}
这篇关于SwiftUI关闭模态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文