Sobes.tech
Junior — Middle

Czy można utworzyć nawigację w interfejsie bez akceptowania obowiązkowych zależności od ObservableObject w Widoku?

sobes.tech AI

Odpowiedź od AI

Tak, w SwiftUI można tworzyć nawigację bez konieczności używania ObservableObject w widoku. Na przykład można użyć lokalnego stanu za pomocą @State lub @StateObject, albo przekazywać dane przez Binding.

Przykład nawigacji z użyciem @State:

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

    var body: some View {
        NavigationView {
            VStack {
                Button("Przejdź do szczegółów") {
                    isDetailActive = true
                }
                NavigationLink(
                    destination: DetailView(),
                    isActive: $isDetailActive,
                    label: { EmptyView() }
                )
            }
            .navigationTitle("Główna")
        }
    }
}

struct DetailView: View {
    var body: some View {
        Text("Ekran szczegółów")
    }
}

Dlatego ObservableObject jest potrzebny tylko wtedy, gdy wymagana jest reaktywna aktualizacja danych z zewnętrznego źródła, ale dla prostej nawigacji można się bez niego obejść.