Проверка наличия дублированного контакта IOS с помощью ContactsUI - PullRequest
0 голосов
/ 05 января 2019

Я интегрирую контакты в свое приложение. В моем приложении я хочу, чтобы пользователь был уведомлен, если контакт, который он добавляет, уже существует, чтобы спасти его от добавления дубликата. Я пытаюсь использовать 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, если мне это не нужно.

Спасибо за любой вклад.

...