Я интегрирую контакты в свое приложение. В моем приложении я хочу, чтобы пользователь был уведомлен, если контакт, который он добавляет, уже существует, чтобы спасти его от добавления дубликата. Я пытаюсь использовать contactsUI, чтобы пользователь мог использовать знакомый ContactViewController для добавления нового контакта. Я попытался создать экземпляр forUnknownContact, но он предоставляет интерфейс, только если у вас уже есть контакт для передачи.
let controller = CNContactViewController(forUnknownContact: l_contact)
controller.delegate = self
self.navigationController?.pushViewController(controller, animated: true)
self.navigationController?.pushViewController(controller, animated: true)
Единственная проблема заключается в том, что инфраструктура, по-видимому, разрешает доступ только к тому, что пользователь ввел после сохранения контакта в функции didCompleteWith, что слишком поздно.
func contactViewController(_ viewController: CNContactViewController,
didCompleteWith contact: CNContact?) {
guard let nc = navigationController else {return}
// whatever happens, pop back to our view controller
defer{nc.popViewController(animated:true)}
guard let contact = contact else{
print("The contact creation was cancelled")
return
}
То, что я надеялся сделать, это перехватить запись после ввода имени и фамилии и выполнить проверку контактов, чтобы выяснить, существует ли она, а затем предложить пользователю использовать существующий контакт, а не добавлять новый. .
Я могу сделать это, используя свой собственный контроллер View, но мне не хочется управлять дополнительным контроллером View, если мне это не нужно.
Спасибо за любой вклад.