小编Hug*_*din的帖子

修改@FetchRequest

@FetchRequest为SwiftUI 引入了Xcode beta 5 。

我有一个视图,其中有一个@FetchRequest。将NSFetchRequest是一个管理器,使得可供财产包装自身的静态实例(不能使用自)内创建。创建时将同一实例传递给视图。

我想要的是FetchRequestself.manager.reverse.toggle()调用时进行更新,以便视图更改其对象顺序。不幸的Manager.fetchRequest()是,即使我创建新对象并在不同视图之间进行转换,它似乎也只会被调用一次,然后再也不会被调用。

我正在寻找有关如何修改使用新属性包装程序提出的提取请求的建议,以便可以根据用户操作对对象进行重新排序。

struct MainView: some View {
    @ObservedObject var manager: Manager

    @FetchRequest(fetchRequest: Manager.shared.fetchRequest())
    var ts: FetchedResults

    var body: some View {
        NavigationView {
            List(ts, id: \.self) { t in
                Text(t.name)
            }
        }.navigationBarItems(trailing:
            Button(action: { 
                self.manager.reverse.toggle() 
            }) { Text("Reverse")}
    }
}

final class Manager: ObservableObject {
    @Published var reverse: Bool = false

    // Since property wrappers cannot use self, we make a shared instance …
Run Code Online (Sandbox Code Playgroud)

swiftui

5
推荐指数
1
解决办法
870
查看次数

标签 统计

swiftui ×1