Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在SwiftUI中显示/隐藏点击时的导航栏和选项卡栏手势?_Ios_Swift_Swiftui - Fatal编程技术网

Ios 在SwiftUI中显示/隐藏点击时的导航栏和选项卡栏手势?

Ios 在SwiftUI中显示/隐藏点击时的导航栏和选项卡栏手势?,ios,swift,swiftui,Ios,Swift,Swiftui,我试图在点击视图时显示/隐藏我的导航栏和我的选项卡栏 我有一个我想点击的背景视频,然后导航栏和选项卡栏应该消失,如果我再次点击,导航栏和选项卡应该重新出现 我目前甚至无法隐藏导航栏 我使用以下代码: struct FirstView: View { var body: some View { NavigationView { ZStack { PlayerView() .e

我试图在点击视图时显示/隐藏我的导航栏和我的选项卡栏

我有一个我想点击的背景视频,然后导航栏和选项卡栏应该消失,如果我再次点击,导航栏和选项卡应该重新出现

我目前甚至无法隐藏导航栏

我使用以下代码:

struct FirstView: View {
 
    var body: some View {
        NavigationView {
            ZStack {
                PlayerView()
                    .edgesIgnoringSafeArea(.all)
                    .onTapGesture(count: 1) {
                        print("tapped!")
                            self.navigationBarHidden(true)
                            self.navigationBarTitle("", displayMode: .inline)
                            self.edgesIgnoringSafeArea([.top, .bottom])
                    }
    
                }
            }
                
                
            }
        }
我尝试使用的基本代码如下:

             .onTapGesture(count: 1) {
                    print("tapped!")
                        self.navigationBarHidden(true)
                        self.navigationBarTitle("", displayMode: .inline)
                        self.edgesIgnoringSafeArea([.top, .bottom])
                }
以上代码将打印点击但它不会隐藏任何东西


我在这里遗漏了什么?

您需要有状态才能隐藏导航栏,类似这样的东西

struct FirstView: View {
    @State private var hideNavigationBar = false
    
    var body: some View {
        NavigationView {
            ZStack {
                PlayerView()
                    .edgesIgnoringSafeArea(.all)
                    .onTapGesture(count: 1) {
                        print("tapped!")
                        self.hideNavigationBar.toggle()
                    }
                
            }
            .navigationBarHidden(hideNavigationBar)
            .navigationBarTitle("", displayMode: .inline)
            .edgesIgnoringSafeArea([.top, .bottom])
        }
    }
}

为了隐藏导航栏,您需要有状态,类似这样的东西

struct FirstView: View {
    @State private var hideNavigationBar = false
    
    var body: some View {
        NavigationView {
            ZStack {
                PlayerView()
                    .edgesIgnoringSafeArea(.all)
                    .onTapGesture(count: 1) {
                        print("tapped!")
                        self.hideNavigationBar.toggle()
                    }
                
            }
            .navigationBarHidden(hideNavigationBar)
            .navigationBarTitle("", displayMode: .inline)
            .edgesIgnoringSafeArea([.top, .bottom])
        }
    }
}

由于某些原因,这仅显示/隐藏导航栏!选项卡栏不显示/隐藏\由于某些原因,这仅显示/隐藏导航栏!选项卡栏不显示/隐藏\