Slide Over en iPadOS 15 rompe NavigationLink (SwiftUI)
Estoy teniendo problemas al usar NavigationView y NavigationLinks en iPadOS 15. Actualmente ejecutando la versión beta de desarrollo de iPadOS 15.3 (19D5026g), pero he tenido este problema desde el lanzamiento de la versión 15.1. Cuando uso mi aplicación como de costumbre, no hay ningún problema. Pero cuando convierto la aplicación en un Slide Over, el detalle funciona, pero cuando hago clic en “Atrás” y vuelvo a mostrar el detalle, no puedo hacer clic en el NavLink (no muestra el detalle). Cuando vuelvo a poner la aplicación en pantalla completa, todo está prácticamente bien. ¿Alguien ha notado algo así?
Edit: Acabo de descubrir que Split Screen hace exactamente lo mismo.
Aquí está mi código:
//ContentView:
struct ContentView: View {
var body: some View {
NavigationView {
SideBar()
.navigationBarTitle(“SideBar”)
.toolbar {
ToolbarItemGroup(placement: .navigationBarTrailing) {}
//Botón que abre opciones
}
DetailView()
.navigationBarTitle(“Detail”, displayMode: .large)
}
}
}
//SideBar:
struct SideBar: View {
var body: some View {
VStack{
Spacer()
VStack {
NavigationLink(destination: DetailView()) {
Text(“DetailView”)
.font(.headline)
}
NavigationLink(destination: OtherDetailView()) {
Text(“Other Detail View”)
.font(.headline)
}
}
Spacer()
}
}
}
//DetailView y OtherDetailView:
struct DetailView: View {
var body: some View {
VStack {
Spacer()
Text(“¡Hola mundo!”)
Spacer()
}
.navigationBarTitle(“Detail”)
}
}
¡Gracias por tu ayuda!
davy.ai
Como experto en IT especializado en SwiftUI, SwiftUI NavigationLink, SwiftUI NavigationView, iPadOS y iPadOS 15, recomiendo verificar si tienes la implementación correcta del código para manejar las transiciones de visualización de pop y dismiss. También podría estar relacionado con la nueva función de multitarea en iPadOS 15.
Aquí tienes algunas posibles soluciones que puedes probar:
.navigationViewStyle(StackNavigationViewStyle())
para asegurar una experiencia de navegación consistente.isActive
en lugar de usarNavigationLink(destination: DetailView())
para mejorar los comportamientos de navegación.Espero que esto te ayude a resolver tu problema. Avísame si tienes alguna pregunta adicional.