Как скрыть панель навигации после входа на страницу в swiftUI - PullRequest
1 голос
/ 17 января 2020

Я не хочу, чтобы на моей странице входа и главной странице отображалась панель навигации, но мне нужна навигация в RegistrationPage и забудь пароль. Я использую .navigationBarHidden (self.isNavigationBarHidden) для управления моей навигационной панелью.

Главная страница с tabView, и есть некоторые tabItemView с их собственным NavigationView. Казалось, что мое приложение с блоком сверху. Когда я прыгаю на лист и go возвращаюсь на главную страницу, пробел исчезает. Вот видео для моей проблемы. https://youtu.be/rIZ3Awzpe3Y

struct LoginView: View {
@EnvironmentObject var userToken: UserToken


@State var account : String = ""
@State var password : String = ""
@State var hint : String = ""
@State var successLogin : Bool = false
@State var hideLoginNavigationBar : Bool = false

@State private var isNavigationBarHidden = true


var body: some View {

    NavigationView {
                NavigationLink(destination: ResetPassword(isNavigationBarHidden: self.$isNavigationBarHidden)) {
                    LoginButtonTextStyle(TextValue:"Resetpassword")
                }

                Button(action: LoginCheck) {
                    // log in logic
                    NavigationLink(destination: MainView(isNavigationBarHidden: self.$isNavigationBarHidden), isActive: $successLogin) {
                        EmptyView()
                    }
                    LoginButtonTextStyle(TextValue:"Login")
                }


                NavigationLink(destination: RegistrationView(isNavigationBarHidden: self.$isNavigationBarHidden)) {
                    LoginButtonTextStyle(TextValue:"Registration")

                }

            }.padding(EdgeInsets(top: 0, leading: 50, bottom: 0, trailing: 50))
        }
        .navigationBarTitle("Login",displayMode: .inline)
        .navigationBarHidden(self.isNavigationBarHidden)
        .onAppear {
            self.isNavigationBarHidden = true
        }
    }
}

Вот моя главная страница

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