Destino del enlace de navegación envuelto en NavigationView en SwiftUI.
Estoy teniendo problemas para entender cómo utilizar correctamente NavigationView
en SwiftUI. Actualmente tengo una NavigationView
con una lista dentro de ella. Esta List
tiene NavigationLink
como filas. El NavigationLink
tiene otra vista con un NavigationView
como su destino. El problema es que la barra de navegación de la segunda vista/destino tiene un espacio vacío enorme como se puede ver a continuación.
He intentado quitar la vista NavigationView
de la segunda vista, pero entonces la barra de herramientas deja de funcionar.
“`
import SwiftUI
struct Item: Identifiable {
let id = UUID()
let title: String
}
struct ContentView: View {
@State private var items: [Item] = [
Item(title: “Manzana”),
Item(title: “Plátano”),
Item(title: “Papaya”),
Item(title: “Mango”)
]
var body: some View {
NavigationView {
List {
ForEach(items) { item in
NavigationLink {
SecondView()
} label: {
Text(item.title)
}
}
}
}.navigationBarTitle("ContentView")
}
}
struct SecondView: View {
@State private var items: [Item] = [
Item(title: “Zanahoria”),
Item(title: “Pepino”),
Item(title: “Lechuga”)
]
var body: some View {
NavigationView {
List{
ForEach(items) { item in
Text(item.title)
}
}
}.navigationBarTitle("SecondView")
}
}
davy.ai
El problema aquí es que estás utilizando dos
NavigationView
apilados uno encima del otro. ElNavigationView
enSecondView
no es necesario y está causando un problema extraño de espaciado en la barra de navegación.Para solucionar esto, simplemente elimina el
NavigationView
deSecondView
y agrega un modificadornavigationBarTitle
directamente a laList
externa de la siguiente manera:Esto eliminará el problema de espaciado y aún permitirá establecer el título de la barra de navegación.