1
votes

Le contenu de NavigationView n'apparaît pas SwiftUI

J'essaye de créer un NavigationView dans SwiftUI avec un seul NavigationLink à l'intérieur. Mon code jusqu'à présent est:

struct HomeView: View {
    var body: some View {
        NavigationView {
            NavigationLink(destination: PlayersView()) {
                Text("Players")
                    .foregroundColor(.white)
                    .padding(12)

            }
            .background(Color.black)
            .cornerRadius(12)

            NavigationLink(destination: PlayersView()) {
                Text("Players")
                    .foregroundColor(.white)
                    .padding(12)

            }
            .background(Color.black)
            .cornerRadius(12)

            .navigationBarTitle(Text("Home"))
        }
    }
}

Rien ne s'affiche dans l'aperçu en direct ou lorsque je cours sur un simulateur. L'aperçu en direct ressemble à ceci:

 Exemple d'aperçu en direct SwiftUI 1

Si je change un peu le code et duplique le NavigationLink, je peux obtenir l'un des liens de navigation à apparaître.

import SwiftUI

struct HomeView: View {
    var body: some View {
        NavigationView {
            NavigationLink(destination: PlayersView()) {
                Text("Players")
                    .foregroundColor(.white)
                    .padding(12)

            }
            .background(Color.black)
            .cornerRadius(12)


            .navigationBarTitle(Text("Home"))
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        HomeView()
    }
}

Exemple d'aperçu en direct SwiftUI 2

J'essaie de créer une page d'accueil avec plusieurs liens vers d'autres fichiers d'affichage d'écran SwiftUI. Toute aide est appréciée!

Merci.


1 commentaires

Il s'agit de l'orientation iPad, veuillez consulter ma réponse pour les détails mis à jour.


3 Réponses :


2
votes

Au lieu de ceci

NavigationLink(destination: PlayersView()) {
    Text("Players")
        .foregroundColor(.white)
        .padding(12)
        .background(Color.black)
        .cornerRadius(12)
}

, faites ceci

NavigationLink(destination: PlayersView()) {
    Text("Players")
        .foregroundColor(.white)
        .padding(12)

}
.background(Color.black)
.cornerRadius(12)

Mise à jour : je suppose que j'ai votre question, que je viens de passer au début automatiquement. NavigationView est spécifique à la plate-forme. Par défaut, l'iPad a un style de navigation Maître / Détails, qui a une présentation différente en fonction de l'orientation, de sorte que vous ne voyez pas dans Aperçu de votre lien, car l'aperçu est dans Portrait et le lien de navigation est dans la barre latérale, qui est masquée.

Si vous voulez le voir dans un tel aperçu, vous devez utiliser .navigationViewStyle (StackNavigationViewStyle ()) pour NavigationView . Ou, dans votre variante, exécutez simplement l'application dans Simulator et utilisez CMD-Flèche gauche / droite rotate Simulator.

Remarque : Il n'est pas possible de faire pivoter Aperçu ou maintenant. Juste au cas où.


2 commentaires

Merci pour la réponse, mais cela n'a pas fait de différence.


L'ajout de .navigationViewStyle (StackNavigationViewStyle ()) à la vue de navigation a résolu le problème!



0
votes

Si vous utilisez l'iPad, je tiens à dire que le premier navigationLink fonctionne comme une vue d'esquisse / d'index que vous pouvez extraire en balayant vers la droite.


0 commentaires

0
votes

Essayez ceci, j'ai également des problèmes au début, mais cette méthode fonctionne pour moi !!

  var body: some View 
  {
      NavigationView 
     {
           VStack(alignment: .center)
              {
                  //Your ui designs
              } 
       .navigationBarTitle(Text("Forgot 
        Password").font(.largeTitle).fontWeight(.medium), displayMode: .inline)

      }
  }


0 commentaires