Lors de la navigation vers une nouvelle vue avec un formulaire ou une liste (groupée), le contenu apparaît environ un quart du bas du titre de la vue de navigation, puis "apparaît" à l'emplacement correct environ une demi-seconde plus tard. Très laid. Vous ne savez pas s'il s'agit d'un bogue SwiftUI ou si je structure quelque chose de mal?
J'ai testé cela sur le simulateur et l'appareil avec les mêmes résultats.
Vous pensez que cela a quelque chose à voir avec la façon dont les liens de navigation sont traités? Chaque lien de navigation appelle l'init () sur sa vue de destination lorsque ContentView apparaît. Pour moi, cela n'a aucun sens, la destination init () ne devrait-elle pas être appelée uniquement lorsqu'un utilisateur clique sur le lien de navigation?
J'ai également essayé cela avec une feuille et le problème n'existe pas avec les feuilles, uniquement lors de l'utilisation de liens de navigation avec des formulaires ou des listes de style groupé.
Code d'une toute nouvelle application à vue unique:
struct ContentView: View {
var body: some View {
NavigationView {
NavigationLink(destination: TestView()) {
Text("Test Link")
}
.navigationBarTitle("Content View")
}
}
}
struct TestView: View {
var body: some View {
Form {
Text("Test View")
}
.navigationBarTitle("Test View")
}
}
J'ai eu ce problème avec une liste qui a été poussée via NavigationLink à partir d'une liste GroupedListStyle. Lorsque vous faites cela, il semble que SwiftUI considère également la liste poussée comme groupée. La simple réinitialisation du listStyle devrait fonctionner dans ce cas:
la source