Junior — Middle
È possibile utilizzare un singolo componente NavigationLink per gestire molteplici transizioni in un'applicazione con numerose navigazioni?
sobes.tech AI
Risposta dell'AI
In SwiftUI, il componente NavigationLink è destinato a creare un passaggio a una visualizzazione specifica. Non è consigliabile usare un singolo NavigationLink per gestire molteplici transizioni, poiché ogni NavigationLink è associato a una destinazione specifica. Per applicazioni con molte navigazioni, è meglio creare un NavigationLink separato per ogni transizione o usare la navigazione programmata con NavigationDestination e NavigationStack, dove si può gestire la navigazione tramite lo stato (ad esempio, un enum con diversi schermi). Questo garantisce una navigazione più pulita e gestibile.
Esempio di utilizzo di NavigationStack con navigazione programmata:
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("Vai ai dettagli") {
path.append(Screen.details)
}
Button("Vai alle impostazioni") {
path.append(Screen.settings)
}
}
.navigationDestination(for: Screen.self) { screen in
switch screen {
case .home:
Text("Schermata principale")
case .details:
Text("Schermata dettagli")
case .settings:
Text("Schermata impostazioni")
}
}
}
}
}