2 votes

SwiftUI : L'élément principal de la NavigationBarItem ne s'affiche pas

Avec ce code, pourquoi l'élément NavigationBarItem ne s'affiche-t-il pas ? La vue est appelée dans une feuille, mais cela n'avait pas d'importance avant ...

struct ChangePasswordView: View {
    @Environment(\.presentationMode) private var presentationMode

    @State private var passwordNew = ""
    @State private var passwordNewAgain = ""

    var body: some View {
        ScrollView {
            changePassword
        }
        .navigationBarItems(leading: backButton)
        .navigationBarItems(trailing: finishButton)
    }

    var backButton: some View {
        Button(action: { self.presentationMode.wrappedValue.dismiss() }) {
            Text("Cancel")
        }
    }

    var finishButton: some View {
        Button(action: {
            self.changePasswordGlobally()
            self.presentationMode.wrappedValue.dismiss()
        }) {
            Text("Apply")
        }
        .disabled(self.passwordNew.isEmpty || self.passwordNew != self.passwordNewAgain)
        .disableAutocorrection(true)
    }
}

Comme vous pouvez le voir dans les captures d'écran suivantes, l'élément de la barre de navigation qui devrait être en tête n'apparaît pas :

Screenshot with the problem!

5voto

Asperi Points 123157

Pour les deux éléments latéraux, utilisez cette variante (testée comme fonctionnant avec Xcode 11.2 / iOS 13.2) :

ScrollView {
    changePassword
}
.navigationBarItems(leading: backButton, trailing: finishButton)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X