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.