Bastante novo no SwiftUI, então provavelmente é algo simples que estou perdendo.
Obtendo este erro: "Não é possível encontrar '$interactionVM' no escopo" onde estou tentando apresentar a planilha. Isso só ocorre quando utilizo .sheet, se eu substituir a planilha por Text(String(...)) posso acessar os valores de interaçãoVM sem erros.
import SwiftUI
struct HomeView: View {
var interactionVM: InteractionViewModel
var body: some View {
NavigationStack {
VStack {
VStack {
HomeViewCard()
}
.sheet(isPresented: $interactionVM.presentInteractionMenu) {
InteractionMenuView(interactionVM: interactionVM)
.presentationDetents([.fraction(0.2), .fraction(0.3), .fraction(0.4), .fraction(0.5), .fraction(0.6), .fraction(0.7), .fraction(0.8), .fraction(0.9)])
.interactiveDismissDisabled()
.presentationBackgroundInteraction(.enabled)
}
.toolbar {
ToolbarItem {
Menu {
NavigationLink {
EmptyView()
} label: {
Text("Option 1")
}
} label: {
Image(systemName: "ellipsis")
}
}
}
}
}
}
}
#Preview {
HomeView(interactionVM: InteractionViewModel())
}
A interaçãoVM é inicializada no arquivo raiz e depois passada para o HomeView:
import SwiftUI
@main
struct theBlackBookApp: App {
let interactionVM = InteractionViewModel()
var body: some Scene {
WindowGroup {
HomeView(interactionVM: interactionVM)
}
}
}
Aqui está meu arquivo de interaçãoVM também, caso seja relevante.
import Foundation
@Observable
class InteractionViewModel {
var interactions: [Interaction] = [Interaction(interactionName: "Example", id: UUID())]
var presentInteractionMenu: Bool = true
var presentInteractionDetails: Bool = false
}
Qualquer ajuda ou soluções alternativas são muito apreciadas! Eu só preciso modificar os valores Bool de outras visualizações.
Coisas que tentei:
Verificando e verificando novamente se há erros de digitação, Limpando a pasta de compilação e reiniciando o Xcode, Reiniciando o Mac, Excluindo DerivedData do arquivo do projeto
Use
@State
para inicializar um@Observable
e use
@Bindable
para modificá-lo.É
$
uma forma de acessoBinding
que atua como uma conexão bidirecional com a fonte da verdade e vem daquelaDynamicProperty
que é usada pelo@propertyWrapper
.Eu sugiro que você dê uma olhada nos tutoriais básicos do Apple SwiftUI.