No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

NavigationView, NavigationLink e introducción a múltiples pantallas

20/22
Recursos

Aportes 8

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Si se están preguntando cómo va ser cuando tengan que crear múltiples links, por ejemplo un link por cada item en una lista, no se preocupen que con los forEach esto se automatiza y limpia el código, además de crear rutas y contenido personalizados.

A partir de iOS 16 se usa NavigationStack, me costó entenderlo, pero logré adaptar este ejemplo con la nueva versión, así que ya no sería necesario usar el @State var ni tampoco el botón.

struct NavigationsView: View {
    var body: some View {
        NavigationStack{
            VStack {
                Text("Hello, World!")
                    .navigationTitle("Home ")
                    .navigationBarTitleDisplayMode(/**/.inline/**/)
                    .toolbar {
                        ToolbarItem(placement: .navigationBarTrailing) {
                            
                            NavigationLink("+", destination: DividersView())
                            
                        }
                    }
                
                NavigationLink("Navegar a vista de ImagesView") {
                    ImagesView()
                }
            }
        }
    }
}

A partir de iOS 16.0+ esta forma de implementar los NavigationView y NavigationLink pasa a ser obsoleta (deprecated).
Se recomienda reemplazar los NavigationView por NavigationStack.
Acá pueden ver en detalle la documentación oficial de apple.

La version nueva de NavigationLink es asi,

NavigationLink("Navegar a vista de tabviews")  {
  TabViews()
}

Nota: WhatsApp usa el large y Telegram usa el inline para chat y contactos

Pero qué bizzarro tener que colocar flags (isDividerActive) para manejar la navegación

Ya esta deprecated ahora toca con NavigationStack ```js NavigationStack { VStack { Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/).navigationTitle("Home").navigationBarTitleDisplayMode(.inline).toolbar(content: { ToolbarItem( placement: .topBarTrailing) { Button(action: { print("go next") goNext = true } , label: { Text("+") }) } }) }.navigationDestination( isPresented: $goNext) { Dividers() } } ```NavigationStack { VStack { Text(/\*@START\_MENU\_TOKEN@\*/"Hello, World!"/\*@END\_MENU\_TOKEN@\*/).navigationTitle("Home").navigationBarTitleDisplayMode(.inline).toolbar(content: { ToolbarItem( placement: .topBarTrailing) { Button(action: { print("go next") goNext = **true** } , label: { Text("+") }) } }) }.navigationDestination( isPresented: $goNext) { Dividers() } }

se puede hacer maravillas combinando NavigationView, ForEach, Enum y Swtich