简体   繁体   中英

SwiftUI navigationBarHidden doesn't work and throws error

I am pushing next view with navigation link

        NavigationLink(destination: DetailsView()
            .navigationBarTitle("")
            .navigationBarHidden(true),
                       isActive: $isDetailsActive) {
            EmptyView()
        }

I tried the same inside details view too. All I am getting is empty Navigation Bar on Details View and error in terminal:

"changing items while animating can result in a corrupted navigation bar"

The error indicates that you should not push or pop new views on the navigation controller until it's finished with the last push or pop.

I hide my navigation bar using .onAppear and .onDisappear , you can place those modifiers in your parent view or in DetailsView(), look:

NavigationView {
    VStack {
        Text("Hello World")
    }
    .navigationBarTitle("")
    .navigationBarHidden(self.isNavBarHidden)
    .onAppear {
        self.isNavBarHidden = true
    }.onDisappear {
        self.isNavBarHidden = false
    }
}

Try:

 NavigationView {

    some code {..}

   .navigationBarTitle("")
   
   .navigationBarHidden(true)

}

It seems that the navigationBarTitle seems to be set at ("") , for the .navigationBarHidden(true) to work within a NavigationView (Xcode Version 13)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM