web-dev-qa-db-fra.com

Pourquoi le titre de navigation ne s'affiche pas à l'aide de SWIFTUI?

J'apprends SwiftUI Utiliser le tutoriel officiel d'Apple: https://developer.apple.com/tatudials/swiftui/building-lists-and-navigation

Tout fonctionne parfaitement jusqu'à ce que j'essaie de montrer le titre de navigation sur un NavigationView en appelant .navigationBarTitle.

J'ai essayé d'actualiser la vue en direct, redémarrez Xcode, mais cela ne se présente toujours pas.

voici mon code:

import SwiftUI

struct LandmarkList : View {
    var body: some View {
        NavigationView {
            List(landmarkData) { landmark in
                LandmarkRow(landmark: landmark)
            }
        }
        .navigationBarItem(title: Text("Done"))
        .navigationBarTitle(Text("Landmarks"))
    }
}

#if DEBUG
struct LandmarkList_Previews : PreviewProvider {
    static var previews: some View {
        LandmarkList()
    }
}
#endif

Le Xcode ressemble à ceci:

Screenshot

Selon le didacticiel, il devrait montrer le titre de navigation mais cela ne l'a pas dans mon cas.

Une idée pourquoi? Merci!

54
Yiming Dong

La description:

NavigationView est juste un conteneur autour de certains contenus. Les contenus changent lorsque vous naviguez de la page à la page, mais le NavigationView persiste.

Le point est que NavigationView montre chaque contenu view quand il le montre. Donc, cela va encapsuler avec la destination.

Enfin, vous devez ajouter tous les modificateurs de navigation à l'intérieur de la navigation (sur le contenu)


Exemple:

struct Content: View {
    var body: some View {
        Text("Some. content")
            .navigationBarItem(title: Text("Done"))
            .navigationBarTitle(Text("Landmarks"))
    }
}
struct Parent: View {
    var body: some View {
        NavigationView {
            Content() // This contains navigation modifiers inside the view itself
        }
    }
}
1
Mojtaba Hosseini