如何解决SwiftUI-如何获取新创建的对象到导航链接
我有一个表单,当按下标记为“保存”的尾随导航栏按钮时,该表单可以保存新客户。然后,我想基于新的客户对象加载新的视图。一种可能的方法可能是激活具有空白视图的导航链接,如下所示:
NavigationLink(destination: CustomerDetailView(customer: currentCustomer),isActive: self.$showCustomerDetail) { EmptyView() }
将showCustomerDetail
设置为true将触发链接。但是要获取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")
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。