Programación en Swift y SwiftUI para iOS Developers

Como usar NavigationStack en SwiftUI

En este tutorial vamos a ver como usar NavigationStack en SwiftUI. En muchas aplicaciones habrás experimentado una interfaz de navegación. Este tipo de UI típicamente consiste en una navigation bar y una lista de datos, permitiendo a los usuarios navegar a una vista detallada cuando hacen tap en el contenido.

En UIKit, implementamos este tipo de interfaz utilizando UINavigationController. En SwiftUI, utilizabamos el componente NavigationView que ahora es llamado NavigationStack desde iOS 16.

Implementando una NavigationStack

Para incrustar una vista de lista en un NavigationStack, simplemente necesitabas envolver la lista con un NavigationStack de esta manera:

NavigationStack{
            List {
                ForEach(restaurants) { restaurant in
                    BasicImageRow(restaurant: restaurant)
                }
            }
            .listStyle(.plain)
       }


Una vez lo hayas hecho verás una barra de navegación vacía. Para asignar un título a la barra, inserta el modifier navigationBarTitle como se puede apreciar a continuación:

NavigationStack{
            List {
                ForEach(restaurants) { restaurant in
                    BasicImageRow(restaurant: restaurant)
                }
            }
            .listStyle(.plain)
            .navigationTitle("Restaurants")
        }

El resultado en XCode es el siguiente:

Personalizando la NavigationStack

Por defecto, la barra de navegación está establecida para aparecer como un título largo. Sin embargo, si quieres mantener la barra de navegación compacta y desactivar el uso de un título largo lo puedes hacer con el modifier navigationBarTitleDisplayMode

El parámetro especifica la apariencia de la barra de navegación, determinando donde debe aparecer como un título largo o un título compacto.

Por defecto está puesto en .automatic, que significa que el título largo es el usado. En el siguiente código, lo ponemos a .inline, indicando usar un título compacto.

.navigationBarTitleDisplayMode(.automatic)

1 comment
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Article

Como cambiar el color de fondo en una lista o tabla en SwiftUI

Next Article

Como cambiar la fuente y el color en una Navigation Bar en SwiftUI

Related Posts