如何在swiftUI中登录页面后隐藏导航栏

如何在swiftUI中登录页面后隐藏导航栏,swiftui,swiftui-navigationlink,Swiftui,Swiftui Navigationlink,我不希望我的登录页面和主页显示导航栏,但我需要在注册页面和忘记密码页面中进行导航。我使用.navigationBarHidden(self.isNavigationBarHidden)来控制我的导航栏 主页上有一个tabView,有些tabItemView有自己的NavigationView。 似乎我的应用程序顶部有一个块。当我跳到一张纸上,回到主页上时,空白消失了。 这是我这期的视频。 这是我的主页 struct MainView: View { @State var selectedtab

我不希望我的登录页面和主页显示导航栏,但我需要在注册页面和忘记密码页面中进行导航。我使用.navigationBarHidden(self.isNavigationBarHidden)来控制我的导航栏

主页上有一个tabView,有些tabItemView有自己的NavigationView。 似乎我的应用程序顶部有一个块。当我跳到一张纸上,回到主页上时,空白消失了。 这是我这期的视频。

这是我的主页

struct MainView: View {
@State var selectedtab:Int = 1
@Binding var isNavigationBarHidden : Bool


var body: some View {
    TabView (selection: $selectedtab){
        UserInformationView()
            .tabItem {
                Image(systemName: "person.fill")
            }.tag(0)
            .navigationBarTitle("Main")
            .navigationBarHidden(true)



        TeamListView()
            .tabItem {
                Image(systemName: "person.3.fill")
            }.tag(1)
            .navigationBarTitle("Main")
            .navigationBarHidden(true)



        NotificationView()
            .tabItem {
            Image(systemName: "bell.fill")
        }.tag(2)
        .navigationBarTitle("Main")
        .navigationBarHidden(true)



        SettingView()
            .tabItem {
            Image(systemName: "list.bullet")
        }.tag(3)
            .navigationBarTitle("Main")
            .navigationBarHidden(true)           
    }


        .navigationBarTitle("Main")
        .onAppear(perform: {

            self.isNavigationBarHidden = true
    })

}
}

带有NavigationView的我的选项卡项视图之一

struct TeamListView: View {
var tutors: [Tutor] = teamData
 //    var teams: [Team]?
@Environment(\.presentationMode) var presentationMode
@EnvironmentObject var userToken : UserToken



@State var showingDelete = false
@State var teamListFloatingButtonShow = false
@State var goToCreateTeam = false
@State var goToInputInvitionCode = false
@State var addMenuIsPresented: Bool = false
@State var creatTeamIsPresented: Bool = false

@State var teamResults : [TeamResult] = []



var body: some View {

    NavigationView {
        .....

    }
    .onAppear(perform: getTeamData)
}

我认为这可以通过在
ZStack
中分离
TabView
NavigationView
来解决,而不是尝试将它们放在另一个选项卡上。中的方法显示了如何连接这些分离的容器,应该会很有帮助。尝试以下方法:我假设可以通过在
ZStack
中分离
TabView
NavigationView
来解决此问题,而不是尝试将其放入另一个容器中。中的方法显示了如何连接这些分离的容器,应该会有所帮助。请尝试以下方法:
struct TeamListView: View {
var tutors: [Tutor] = teamData
 //    var teams: [Team]?
@Environment(\.presentationMode) var presentationMode
@EnvironmentObject var userToken : UserToken



@State var showingDelete = false
@State var teamListFloatingButtonShow = false
@State var goToCreateTeam = false
@State var goToInputInvitionCode = false
@State var addMenuIsPresented: Bool = false
@State var creatTeamIsPresented: Bool = false

@State var teamResults : [TeamResult] = []



var body: some View {

    NavigationView {
        .....

    }
    .onAppear(perform: getTeamData)
}