NavigationView
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
.
Navegando entre telas
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
.