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

cl25kdpy  于 2023-08-02  发布在  Swift
关注(0)|答案(2)|浏览(165)

我有一个导航栏和一个标签栏在底部的大部分导航在我的应用程序。我试图显示一个全屏视图,有效地删除所有导航,当点击一个按钮。
关于SO的其他问题解决了没有导航栏或标签栏的情况,所以它们并没有真正回答我的用例。
这里我尝试了:

  • 点击时隐藏导航栏和标签栏:不适用于选项卡栏。顶部导航变得buggy,如果我试图回到另一个视图时,解雇全屏视图。
  • 使用模态:它工作,但它不是全屏,这不符合我想做的。
  • 在我用按钮切换的所有东西之上使用ZStack:这不会隐藏选项卡栏。

有解决方案吗,或者我应该给予并使用模态?
谢了,谢了

nukf8bse

nukf8bse1#

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


的数据

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)
    }
}

字符串

vlju58qv

vlju58qv2#

你知道如何将自定义视图传递给这个模型吗?因此,它可能会在整个应用程序中以通用的方式调用?

相关问题