我在根视图中使用.sheet(isPresented: self.$showModal)
来显示模态。在模态中,我正在使用NavigationView
引导用户浏览各个页面(用于用户个人资料构建器)。
[在我的导航堆栈的最后一页中,我使用@Environment(\.presentationMode) var presentationMode
和一个调用self.presentationMode.wrappedValue.dismiss()
的按钮来消除模态。但是,这只会关闭导航堆栈中的最后一页,而我只停留在上一页。我想做的是关闭整个导航堆栈,然后回到根视图。
向下滑动以消除模态会产生所需的结果,但是我想通过此按钮以编程方式执行此操作。
目前在SwiftUI中是否可行,还是在模式表中使用NavigationView
会带来问题吗?
您可以将showModal作为绑定传递到以下屏幕中,而不是使用presentationValue将showModal设置为false。
@State private var modalOpen: Bool = false
.sheet(isPresented: self.$modalOpen, onDismiss: {
// code that triggers when modal is closed
}) {
Button(action: {
self.modalOpen.toggle()
}) {
Text("Schließen")
}