Sobes.tech
Junior — Middle

Je možné vytvoriť navigáciu v rozhraní bez prijatia povinných závislostí od ObservableObject v Zobrazení?

sobes.tech AI

Odpoveď od AI

Áno, v SwiftUI je možné vytvoriť navigáciu bez nutnosti použiť ObservableObject v pohľade. Napríklad, môžete použiť lokálny stav s @State alebo @StateObject, alebo prenášať údaje cez Binding.

Príklad navigácie s použitím @State:

struct ContentView: View {
    @State private var isDetailActive = false

    var body: some View {
        NavigationView {
            VStack {
                Button("Prejsť na detaily") {
                    isDetailActive = true
                }
                NavigationLink(
                    destination: DetailView(),
                    isActive: $isDetailActive,
                    label: { EmptyView() }
                )
            }
            .navigationTitle("Hlavná")
        }
    }
}

struct DetailView: View {
    var body: some View {
        Text("Detaily")
    }
}

Preto je ObservableObject potrebný iba v prípade, ak je potrebná reaktívna aktualizácia dát z externého zdroja, ale pre jednoduchú navigáciu sa dá bez neho obísť.