SwiftUI - 如何让新创建的对象进行导航 link

SwiftUI - how to get newly created object to navigation link

我有一个表单,可以在按下标有“保存”的尾随导航栏按钮时保存新客户。然后我想加载一个基于新客户对象的新视图。一种可能的方法可能是激活导航 link 具有如下所示的空视图:

NavigationLink(destination: CustomerDetailView(customer: currentCustomer), isActive: self.$showCustomerDetail) { EmptyView() }

showCustomerDetail 设置为 true 将触发 link。但是要获得 currentCustomer 的值,我需要一个动态获取请求,可能使用新的 UUID 作为谓词。这就是事情分崩离析的地方。我不知道如何获取对 currentCustomer 变量的提取请求的结果。

以下是代码的有用部分:

导航栏按钮

.navigationBarItems(leading:
   Button(action: {
      self.presentationMode.wrappedValue.dismiss()
   }, label: {
      Text("Cancel")
   }), trailing:
      Button(action: {
         let newCustomer = Customer(context: self.moc)
            newCustomer.id = UUID()
            newCustomer.custName = self.name
      }
      self.appDelegate.saveContext()
      self.showCustomerDetail = true
   })
}, label: {
   Text("Save")
})

获取请求

currentCustomer = FetchRequest<Customer>(entity: Customer.entity(), sortDescriptors: [], predicate: NSPredicate(format: "id == %@", custID as CVarArg))

这是合适的方法(因为 newCustomer 已经保存到数据库中,所以可以直接使用):

.navigationBarItems(leading:
   Button(action: {
      self.presentationMode.wrappedValue.dismiss()
   }, label: {
      Text("Cancel")
   }), trailing:
      Button(action: {
         let newCustomer = Customer(context: self.moc)
            newCustomer.id = UUID()
            newCustomer.custName = self.name
      }
      self.appDelegate.saveContext()

      self.currentCustomer = newCustomer       // << here !!
      self.showCustomerDetail = true
   })
}, label: {
   Text("Save")
})