webentwicklung-frage-antwort-db.com.de

Swift 3 Neuen Kontakt mit Telefon- und E-Mail-Informationen hinzufügen

Ich versuche, den Benutzer aufzufordern, einen neuen Kontakt zu erstellen und Informationen zu übergeben. (speziell ein Telefon und eine E-Mail)

Ich habe zahlreiche Beispiele für die Verwendung eines CNMutableContact und das Hinzufügen einer E-Mail gefunden. Bei jedem Code, der den CNContact enthält, wird jedoch der Fehler "Verwendung nicht deklarierter Typen" angezeigt. 

Wie kann ich meine Klasse so einrichten, dass der Benutzer aufgefordert wird, den Kontakt zu speichern?

13
TheMooCows237
func addPhoneNumber(phNo : String) {
  if #available(iOS 9.0, *) {
      let store = CNContactStore()
      let contact = CNMutableContact()
      let homePhone = CNLabeledValue(label: CNLabelHome, value: CNPhoneNumber(stringValue :phNo ))
      contact.phoneNumbers = [homePhone]
      let controller = CNContactViewController(forUnknownContact : contact)
      controller.contactStore = store
      controller.delegate = self
      self.navigationController?.setNavigationBarHidden(false, animated: true)
      self.navigationController!.pushViewController(controller, animated: true)
  }
}
11
Ganesh Kumar

Sie können so etwas tun.

extension ViewController: CNContactViewControllerDelegate {

    func showNewContactViewController() {

        let contactViewController: CNContactViewController = CNContactViewController(forNewContact: nil)
        contactViewController.contactStore = CNContactStore()
        contactViewController.delegate = self
        let navigationController: UINavigationController = UINavigationController(rootViewController: contactViewController)
        present(navigationController, animated: false) {
            print("Present")
        }
    }
}
2
Satish Babariya

Swift 4

import ContactsUI

delegate implementieren CNContactViewControllerDelegate

@IBAction func UserTap_Handler(_ sender: Any) {

        self.navigationController?.isNavigationBarHidden = false
        let con = CNContact()
        let vc = CNContactViewController(forNewContact: con)
        vc.delegate = self
        _ = self.navigationController?.pushViewController(vc, animated: true)
    }

    //MARK:- contacts delegates
    func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) {
        print("dismiss contact")
        self.navigationController?.popViewController(animated: true)
    }
    func contactViewController(_ viewController: CNContactViewController, shouldPerformDefaultActionFor property: CNContactProperty) -> Bool {
        return true
    }
1
Azhar