Я столкнулся с проблемой contactUI contactViewController. Я вызываю contactViewController внутри представления SwiftUI.
Моя проблема: я хочу добавить новый контакт в определенную c группу контактов. Согласно документации Apple, этого можно добиться с помощью свойства parentGroup.
Теперь мне интересно, где бы я объявил это свойство? В приведенном ниже коде вы видите два способа, которые я нашел, где можно объявить это свойство, но, похоже, ни один из них не работает ..
struct addContactUIView : UIViewControllerRepresentable {
func makeCoordinator() -> Coordinator {
return Coordinator(self)
}
class Coordinator: NSObject, CNContactViewControllerDelegate, UINavigationControllerDelegate {
func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) {
if let c = contact {
self.parent.contact = c
}
// --> here? viewController.parentGroup
viewController.dismiss(animated: true)
}
func contactViewController(_ viewController: CNContactViewController, shouldPerformDefaultActionFor property: CNContactProperty) -> Bool {
return true
}
var parent: addContactUIView
init(_ parent: addContactUIView) {
self.parent = parent
}
}
@Binding var contact: CNContact
init(contact: Binding<CNContact>) {
self._contact = contact
}
typealias UIViewControllerType = CNContactViewController
func makeUIViewController(context: UIViewControllerRepresentableContext<addContactUIView>) -> addContactUIView.UIViewControllerType {
let viewController = CNContactViewController(forNewContact: CNContact())
// --> or here? viewController.parentGroup
viewController.delegate = context.coordinator
return viewController
}
func updateUIViewController(_ uiViewController: addContactUIView.UIViewControllerType, context: UIViewControllerRepresentableContext<addContactUIView>) {
}
}