J'ai deux projets Xcode distincts que j'utilise pour apprendre SwiftUI:
Le code suivant crée un NavigationView
simple avec des vues maître-détail:
import SwiftUI
struct ListView : View {
var body: some View {
NavigationView {
List() {
NavigationButton(destination: Text("detail 1")) {
Text("row 1")
}
NavigationButton(destination: Text("detail 2")) {
Text("row 2")
}
}
}
}
}
#if DEBUG
struct ListView_Previews : PreviewProvider {
static var previews: some View {
ListView()
}
}
#endif
Cela fonctionne comme prévu sur iOS ????
Mais sur le projet macOS, le même code que ci-dessus ne fonctionne pas de la même manière ????
Lorsque je lance l'application sur Mac, j'obtiens cette fenêtre
Et lorsque je clique sur une ligne, la vue détaillée se réduit/disparaît, ne me montrant jamais la vue détaillée.
Une idée de comment réparer ça? Peut-être que je manque quelque chose? Ou peut-être que c'est juste un bug?
Je n'ai pas la réponse, mais j'essaie de faire la même chose et j'ai quelques observations à ajouter, peut-être qu'ils aideront:
Ajouter une vue de destination:
NavigationButton(destination: DetailView()) {
Text("Show Detail")
}
La définition d'une largeur sur la NavigationView empêche la vue de droite de disparaître.
De plus, l'ajout
.onAppear { print("DetailView called") }
à la vue de détail montre que, même si elle n'est pas affichée, la vue est en fait appelée lorsque le bouton est cliqué.
Edit: c'est là! La vue a été masquée par le séparateur, faites-la glisser vers la gauche pour voir la vue détaillée.
Edit 2: Xcode beta 2 donne un message "'NavigationView' n'est pas disponible dans macOS".