Я не хочу, чтобы на моей странице входа и главной странице отображалась панель навигации, но мне нужна навигация в 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)
}