Sobes.tech
Junior — Middle

Lehet-e navigációt létrehozni a felületen anélkül, hogy kötelező függőségeket fogadnánk el az ObservableObject-től a Nézetben?

sobes.tech MI

Válasz az MI-től

Igen, a SwiftUI-ban navigációt lehet létrehozni ObservableObject használata nélkül is a nézetben. Például, helyi állapotot használhatunk @State vagy @StateObject segítségével, vagy adatokat átadhatunk Binding segítségével.

Példa navigációra @State használatával:

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

    var body: some View {
        NavigationView {
            VStack {
                Button("Részletekhez") {
                    isDetailActive = true
                }
                NavigationLink(
                    destination: DetailView(),
                    isActive: $isDetailActive,
                    label: { EmptyView() }
                )
            }
            .navigationTitle("Fő")
        }
    }
}

struct DetailView: View {
    var body: some View {
        Text("Részletes képernyő")
    }
}

Tehát, az ObservableObject csak akkor szükséges, ha külső forrásból származó adatok reaktív frissítésére van szükség, de egyszerű navigáció esetén el lehet hagyni.