Sobes.tech
Junior — Middle

Ar įmanoma sukurti navigaciją sąsajoje be privalomų priklausomybių nuo ObservableObject vaizde?

sobes.tech AI

Atsakymas iš AI

Taip, SwiftUI galima sukurti navigaciją be būtinybės naudoti ObservableObject. Pavyzdžiui, galima naudoti vietinę būseną su @State arba @StateObject, arba perduoti duomenis per Binding.

Pavyzdys naudojant @State:

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

    var body: some View {
        NavigationView {
            VStack {
                Button("Peržiūrėti detales") {
                    isDetailActive = true
                }
                NavigationLink(
                    destination: DetailView(),
                    isActive: $isDetailActive,
                    label: { EmptyView() }
                )
            }
            .navigationTitle("Pagrindinis")
        }
    }
}

struct DetailView: View {
    var body: some View {
        Text("Detalių ekranas")
    }
}

Todėl, ObservableObject reikalingas tik jei reikalingas reaguojantis duomenų atnaujinimas iš išorinio šaltinio, tačiau paprastai navigacijai galima be jo apsieiti.