NavigationView

NavigationView SwiftUI

A NavigationView serve para criar uma navegação horizontal com uma coleção de views dentro do seu app. O usuário navega entre as views disponíveis através de um NavigationLink, que é basicamente uma view que controla a navegação e apresentação das telas.

Usando a NavigationView

Para utilizar a NavigationView, é necessário colocá-la na raiz das views da sua tela, englobando todas as views filhas.

Adicionando um Título

Para adicionar um título a sua navigation view, é preciso utilizar o modificador .navigationTitle.

Contudo, é preciso utilizar este modificador nas views dentro da NavigationView, e não na NavigationView em si - desde que o método seja chamado apenas uma vez, qualquer view é elegível para definir o título da página.

Por exemplo, aqui chamamos o método em nossa ZStack:

Já aqui, chamamos o método no nosso elemento Text, mas o resultado continua o mesmo:

Adicionando Itens a Navigation Bar

É possível adicionar itens a navigation bar utilizando o modificador .toolbar.

Para efetivamente adicionar os itens dentro da toolbar, existem duas opções:

  • ToolbarItem: Permite adicionar um item.
  • ToolbarItemGroup: Permite adicionar um ou mais itens.

Ambas as opções permitem escolher o local onde os itens serão colocados através do parâmetro placement.

A navegação entre telas dentro de uma navigation view é feita utilizando o NavigationLink. Ele apresentará uma outra tela quando o usuário clicar em cima de seu conteúdo.

Por padrão, o SwiftUI já trás alguns comportamentos predefinidos para a navegação entre as páginas, no caso do NavigationLink, é o gesto de swipe (arrastar para o lado) para voltar a tela anterior.

No exemplo a seguir, existe um retângulo vermelho e outro verde, ambos sendo um NavigationLink. Ao clicar em um retângulo o usuário será direcionado a view que foi definida no parâmetro destination do navigation link:

Obs.: a view do parâmetro destination pode ser qualquer tipo de view, incluindo views customizadas. Porém o SwiftUI nos dá a facilidade de usar views mais simples como Text como destino do NavigationLink.

Anterior
Anterior

TabView

Próximo
Próximo

String Interpolation