navigationBarBackButtonHidden(_ hidesBackButton: Bool) -> some View But it still shows the back button and I want to remove the back function when clicked.
4 Réponses :
C'est la solution, mais cela ne fonctionne pas sur Xcode 11 beta 4:
struct LiveView: View { var body: some View { NavigationView { NavigationLink(destination: ButtonView()) { Text("Next screen") } } } } struct ButtonView: View { @State var navigationBarBackButtonHidden = true var body: some View { Button("Show back") { self.navigationBarBackButtonHidden = false }.navigationBarBackButtonHidden(navigationBarBackButtonHidden) } }
Il y a aussi navigationBarHidden
qui ne fonctionne pas sur iPhone mais fonctionne parfaitement sur watchOS.
C'est la solution la plus complète et la plus utile
Peut être:
.navigationBarBackButtonHidden(true)
Fonctionne avec XCode 12.1
Même avec Xcode 11.7
J'ai rencontré une situation où je ne pouvais pas faire fonctionner le .navigationBarBackButtonHidden(true)
jusqu'à ce que je le place sur la vue que j'ai intégrée dans le NavigationLink
lui-même.
struct MyView: View { var aStuff: Stuff var onDismiss: () -> Void var body: some View { VStack(alignment: .leading) { Button(action: self.onDismiss) { Image(systemName: "chevron.left.circle") } CoolAnimatedStuffDisplayer(stuff: aStuff) } .navigationBarBackButtonHidden(true) // <--- works here } }
avec:
NavigationLink(destination:MyView(stuff: aStuff, onDismiss: {})) { HStack { Text(aStuff.interestingText) } } // <- used to set it here, doesn't work for me
J'ai essayé de placer .navigationBarBackButtonHidden(true)
à plusieurs endroits. C'est le comportement que j'ai observé. J'espère que cela aide!
struct PageOne: View { var body: some View { NavigationView { VStack{ NavigationLink(destination: PageTwo()){ Text("Go to Page Two") } } } } } // Hide from page 2 -> page 1 struct PageTwo: View { var body: some View { VStack{ NavigationLink(destination: PageThree()){ Text("Go to Page Three") }.navigationBarBackButtonHidden(true) } } } // Hide from page 3 -> page 2 (Same behaviour as Kheldar's answer above) struct PageTwo: View { var body: some View { VStack{ NavigationLink(destination: PageThree().navigationBarBackButtonHidden(true)){ Text("Go to Page Three") } } } } struct PageThree: View { var body: some View { Text("Hello!") } }
Superbe, merci beaucoup, cela a fonctionné pour moi
Bienvenue à SO! Pourriez-vous s'il vous plaît montrer plus de code? (Peut-être même comme code?) Il serait utile pour nous de dupliquer votre problème.