【发布时间】:2020-11-09 20:57:39
【问题描述】:
我有一个连接到CoreData 模型的SwiftUI 视图。我还有一个SpriteKit 场景,它改变了我的模型中的数据。因此,每次我在 CoreData 中操作我的 SKScene 中的数据时,我的场景都会重新初始化,这在我的情况下是不受欢迎的行为。
如何在不重新创建SKScene 的情况下在SpriteView 中获取更新的模型?
我的代码如下所示:
struct TamagotchiListView: View {
@Environment(\.managedObjectContext)
var context: NSManagedObjectContext
@FetchRequest(fetchRequest: TamagotchiModel.getFetchRequest())
var tamagotchis: FetchedResults<TamagotchiModel>
var body: some View {
VStack {
List {
ForEach(tamagotchis, id: \.self) { (tamagotchi: TamagotchiModel) in
NavigationLink(destination: SpriteKitView(scene: SpriteKitScene(model: tamagotchi))) {
HStack {
Image(systemName: "gamecontroller")
.padding(.trailing, 5)
VStack(alignment: .leading) {
Text(tamagotchi.name)
.font(.headline)
Spacer()
Text(tamagotchi.birthDate, style: .date)
}
Spacer()
}
}
}
}
}
}
【问题讨论】:
-
需要某种可重现的例子来避免猜测。
标签: core-data sprite-kit swiftui