Junior — Middle
Je možné vytvořit navigaci v rozhraní bez přijetí povinných závislostí od ObservableObject ve Zobrazení?
sobes.tech AI
Odpověď od AI
Ano, ve SwiftUI je možné vytvořit navigaci bez nutnosti použití ObservableObject v pohledu. Například můžete použít místní stav s @State nebo @StateObject, nebo předávat data přes Binding.
Příklad navigace s použitím @State:
struct ContentView: View {
@State private var isDetailActive = false
var body: some View {
NavigationView {
VStack {
Button("Přejít na detaily") {
isDetailActive = true
}
NavigationLink(
destination: DetailView(),
isActive: $isDetailActive,
label: { EmptyView() }
)
}
.navigationTitle("Hlavní")
}
}
}
struct DetailView: View {
var body: some View {
Text("Detaily")
}
}
Proto je ObservableObject potřeba pouze tehdy, pokud je potřeba reaktivní aktualizace dat z externího zdroje, ale pro jednoduchou navigaci se bez něj obejdete.