在SwiftUI中隐藏特定页面上的选项卡栏

问题描述 投票:0回答:1

我正在应用程序中使用相机。该应用程序允许您借助SwiftUI中的TabView导航到此摄像机视图。但是,问题是,当我在摄像机视图上时,我想隐藏TabView。到目前为止,我一直在尝试找到解决方案,但似乎找不到任何解决方案。

这里是screenshot of the code and the view with the tabview

:屏幕截图包含图像(如果预览)。当我在真实设备上运行相机时,它可以正常工作。问题是进入摄像机视图后,我需要隐藏标签栏。

这是我使用的代码示例:

import SwiftUI

struct AppView: View {
    var body: some View {
        TabView{
            Home()
                .tabItem {
                    // Add icon
                Text("Home")
            }

            MomentsCam()
                .tabItem {
                    // Add icon
                    Text("Camera")
            }.navigationBarHidden(true)

            Moments()
                .tabItem{
                    //Add icon
                     Text("Moments")
            }
        }
    }
}
ios swiftui tabview
1个回答
0
投票

我为您的情况使用TabView更新了my solution。相同的想法:您正在使用ZStack@State var selection。想法是使用.opacityTabView中的YourCameraView(在我的示例中就是Image(systemName: "plus.circle")):

struct TabViewModel: View {

    @State var selection: Int = 0

    var body: some View {

        ZStack {
            GeometryReader { geometry in
                TabView(selection: self.$selection) {

                    Text("list")
                        .tabItem {
                            Image(systemName: "list.bullet.below.rectangle")
                    }.tag(0)

                    Text("plus")
                        .tabItem {
                            Image(systemName: "camera")
                    }.tag(1)

                    Text("more categories!")
                        .tabItem {
                            Image(systemName: "square.grid.2x2")
                    }.tag(2)
                }
                .opacity(self.selection == 1 ? 0.01 : 1)

                Image(systemName: "plus.circle")
                    .resizable()
                    .frame(width: 60, height: 60)
                    .shadow(color: .gray, radius: 2, x: 0, y: 5)
                    .offset(x: geometry.size.width / 2 - 30, y: geometry.size.height - 80)
                    .onTapGesture {
                        self.selection = 0
                }
                .opacity(self.selection == 1 ? 1 : 0)
            }

        }

    }
}

当您点击相机选项卡时,项目TabView不可见

© www.soinside.com 2019 - 2024. All rights reserved.