Junior — Middle
Pode-se usar um único componente NavigationLink para gerir múltiplas transições numa aplicação com muitas navegações?
sobes.tech IA
Resposta da IA
No SwiftUI, o componente NavigationLink destina-se a criar uma transição para uma visualização específica. Não é recomendado usar um único NavigationLink para gerir múltiplas transições, pois cada NavigationLink está associado a um destino (objetivo da transição) específico. Para aplicações com muitas navegações, é melhor criar um NavigationLink separado para cada transição ou usar navegação programática com NavigationDestination e NavigationStack, onde a navegação pode ser gerida através do estado (por exemplo, um enum com diferentes telas). Isto proporciona uma navegação mais limpa e gerível.
Exemplo de uso de NavigationStack com navegação programática:
enum Screen {
case home
case details
case settings
}
struct ContentView: View {
@State private var path = NavigationPath()
var body: some View {
NavigationStack(path: $path) {
VStack {
Button("Ir para detalhes") {
path.append(Screen.details)
}
Button("Ir para configurações") {
path.append(Screen.settings)
}
}
.navigationDestination(for: Screen.self) { screen in
switch screen {
case .home:
Text("Tela principal")
case .details:
Text("Tela de detalhes")
case .settings:
Text("Tela de configurações")
}
}
}
}
}