Bra*_*ang 6 background core-data swift swiftui
在后台更新核心数据后,如何在不调用 onAppear 方法的情况下自动刷新 swiftUI 视图?
struct Page1: View {
@FetchRequest(entity: Word.entity(), sortDescriptors: [])
var wordsFromCoreData: FetchedResults<Word>
@State var isPresenting = false
var body: some View {
NavigationView{
VStack{
NavigationLink(destination: Page2()){
Text("Add")
}
List(wordsFromCoreData, id: \.self){item in
WordRowView(word:item)
}.navigationBarTitle(Text("English Words"))
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
是的,我想@FetchRequest会在我的 Page1出现后帮助我自动重新加载数据
但是,如果我使用NavigationLink或.sheet访问 Page2,我认为 swift 不会调用 onAppear。
所以,如果我去 Page2,做一些 Core Data 的事情,比如从 Internet 获取图像,然后我回到 Page1,它从不显示数据,但数据实际上已经存在于我的核心数据中。因此,这意味着 Page1 在这种情况下不会刷新数据。
另一种情况工作正常,例如,我将 Page2 设置为另一个TabView而不是NavigationLink(A Detail View),当我返回到 Page1 时,视图已刷新。
但我更喜欢NavigationLink完成我的工作。那么,有没有办法在后台更新核心数据后自动刷新 swiftUI 视图?
| 归档时间: |
|
| 查看次数: |
940 次 |
| 最近记录: |