1

ログインページとメインページにナビゲーションバーを表示したくないのですが、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)
}
4

0 に答える 0