如何使用 SwiftUI 显示全栈模式?

How to display a fullstack modal with SwiftUI?

对于我的应用程序中的大部分导航,我有一个顶部导航栏和一个底部标签栏。我正在尝试显示全屏视图,在单击按钮时有效地删除所有导航。

当没有导航栏或标签栏时,关于 SO 的其他问题解决了这种情况,因此它们并没有真正回答我的用例。

这是我尝试过的:

是否有解决方案,或者我应该放弃并使用模态?

谢谢

这是一个可能的解决方案演示。

struct DemoModalOverTabView: View {
    @State private var showModally = false
    var body: some View {
        ZStack {
            TabView {     //  << main tab view
                DemoTab
            }.disabled(showModally) // << deactivate forcefully

            if showModally {
                DemoModal     //  << modal view
                   .zIndex(1)     // << required !!
                   .transition(.move(edge: .bottom)).animation(.default)
            }
        }
    }

    var DemoTab: some View {
        Button("Show") { self.showModally = true }
            .tabItem { Image(systemName: "person") }
    }

    var DemoModal: some View {
        Button("Hide") { self.showModally = false }
           .frame(maxWidth: .infinity, maxHeight: .infinity)
           .background(Color.yellow)
           .edgesIgnoringSafeArea(.all)
    }
}