ログインページとメインページにナビゲーションバーを表示したくないのですが、RegistrationPageとforgetPasswordPageにナビゲーションが必要です。.navigationBarHidden(self.isNavigationBarHidden) を使用して、navigationBar を制御します。
tabView を持つ mainPage と、独自の NavigationView を持ついくつかの tabItemView があります。一番上にブロックがある私のアプリのようでした。シートにジャンプしてメインページに戻ると、空白が消えていました。これが私の問題のビデオです。 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 を使用したタブ項目ビューの 1 つ
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)
}