SwiftUI移除多个模态表

问题描述 投票:2回答:2

我在根视图中使用.sheet(isPresented: self.$showModal)来显示模态。在模态中,我正在使用NavigationView引导用户浏览各个页面(用于用户个人资料构建器)。

[在我的导航堆栈的最后一页中,我使用@Environment(\.presentationMode) var presentationMode和一个调用self.presentationMode.wrappedValue.dismiss()的按钮来消除模态。但是,这只会关闭导航堆栈中的最后一页,而我只停留在上一页。我想做的是关闭整个导航堆栈,然后回到根视图。

向下滑动以消除模态会产生所需的结果,但是我想通过此按钮以编程方式执行此操作。

目前在SwiftUI中是否可行,还是在模式表中使用NavigationView会带来问题吗?

ios swift swiftui
2个回答
0
投票

您可以将showModal作为绑定传递到以下屏幕中,而不是使用presentationValue将showModal设置为false。


0
投票
@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")
        }
© www.soinside.com 2019 - 2024. All rights reserved.