Sobes.tech
Junior — Middle

Kas on võimalik luua navigeerimine liideses ilma ObservableObject-i kohustuslike sõltuvusteta vaates?

sobes.tech AI

Vastus AI-lt

Jah, SwiftUI-s on võimalik luua navigeerimist ilma, et oleks vaja kasutata ObservableObjecti vaates. Näiteks saab kasutada kohaliku oleku @State või @StateObject abil või andmeid edastada Bindingi kaudu.

Näide navigeerimisest @State kasutades:

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

    var body: some View {
        NavigationView {
            VStack {
                Button("Mine detailidele") {
                    isDetailActive = true
                }
                NavigationLink(
                    destination: DetailView(),
                    isActive: $isDetailActive,
                    label: { EmptyView() }
                )
            }
            .navigationTitle("Peamine")
        }
    }
}

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

Seega, ObservableObject on vajalik ainult siis, kui on vaja reaktiivset andmete uuendamist välisest allikast, kuid lihtsa navigeerimise puhul saab sellest ilma ka hakkama.