I have a problem that I can't quite seem to solve even though I've used resources I've found on Google and on here. I've only started being taught Swift and how to use Xcode about a month ago, hence, I'm very new, and the problem I have is probably very simple to others.
What I'm trying to do is add and save a new contact to the addressbook. I can get from the app to the Contacts app no problem, it's just I can't save the new contact information.
import AddressBookUI
import AddressBook
class ViewController: UIViewController {
    @IBOutlet weak var contactLink: UIButton!
    @IBAction func contactLink(sender: AnyObject) {
        var viewController: ABNewPersonViewController = ABNewPersonViewController()
        self.presentViewController(viewController, animated: true, completion: nil)
    }
}
Here's the code I'm using that relates to my problem. Any assistance will be appreciated.
Nowadays, you'd use ContactsUI framework. So, in Swift 3, you could do:
import ContactsUI
class ViewController: UIViewController, CNContactViewControllerDelegate {
    @IBAction func contactLink(_ sender: AnyObject) {
        let controller = CNContactViewController(forNewContact: nil)
        controller.delegate = self
        let navigationController = UINavigationController(rootViewController: controller)
        self.present(navigationController, animated: true)
    }
    func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) {
        viewController.navigationController?.dismiss(animated: true)
    }
}
My original answer, using AddressBookUI framework in Swift 2 is below.
The Swift code is:
import AddressBookUI
class ViewController: UIViewController, ABNewPersonViewControllerDelegate {
    @IBAction func contactLink(sender: AnyObject) {
        let controller = ABNewPersonViewController()
        controller.newPersonViewDelegate = self
        let navigationController = UINavigationController(rootViewController: controller)
        self.presentViewController(navigationController, animated: true, completion: nil)
    }
    func newPersonViewController(newPersonView: ABNewPersonViewController!, didCompleteWithNewPerson person: ABRecord!) {
        newPersonView.navigationController?.dismissViewControllerAnimated(true, completion: nil);
    }
}
See the Prompting the User to Create a New Person Record section of the Address Book Programming Guide: User Interaction: Prompting for and Displaying Data.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With