Sobes.tech
Junior — Middle

É possível criar uma navegação na interface sem aceitar dependências obrigatórias de ObservableObject na Vista?

sobes.tech IA

Resposta da IA

Sim, no SwiftUI é possível criar navegação sem a necessidade de usar ObservableObject na vista. Por exemplo, pode-se usar estado local com @State ou @StateObject, ou passar dados através de Binding.

Exemplo de navegação usando @State:

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

    var body: some View {
        NavigationView {
            VStack {
                Button("Ir para detalhes") {
                    isDetailActive = true
                }
                NavigationLink(
                    destination: DetailView(),
                    isActive: $isDetailActive,
                    label: { EmptyView() }
                )
            }
            .navigationTitle("Principal")
        }
    }
}

struct DetailView: View {
    var body: some View {
        Text("Tela de detalhes")
    }
}

Portanto, ObservableObject só é necessário se for preciso uma atualização reativa de dados de uma fonte externa, mas para navegação simples, pode-se dispensar o seu uso.