Al navegar a una nueva vista con un formulario o una lista (agrupada), el contenido aparece aproximadamente un cuarto del camino desde la parte inferior del título de la vista de navegación, luego "aparece" en la ubicación correcta aproximadamente medio segundo después. Muy feo. ¿No está seguro de si se trata de un error de SwiftUI o si estoy estructurando algo incorrectamente?
He probado esto tanto en el simulador como en el dispositivo con los mismos resultados.
¿Estoy pensando que tiene algo que ver con la forma en que se manejan los enlaces de navegación? Cada enlace de navegación llama a init () en su vista de destino cuando aparece ContentView. Para mí esto no tiene sentido, ¿no debería llamarse el init init () en el momento en que un usuario hace clic en el enlace de navegación?
También probé esto con una hoja y el problema no existe con las hojas, solo cuando utilizo enlaces de navegación con formularios o listas con estilos agrupados.
Código de una nueva aplicación de vista única:
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")
}
}
Tuve este problema con una lista que se introdujo a través de NavigationLink desde una lista GroupedListStyle. Cuando haces eso, parece que SwiftUI también considera la Lista empujada como agrupada. Simplemente restablecer listStyle debería funcionar en este caso:
fuente