添加并保存新联系人到AddressBook

Gee*_*rey 6 addressbook ios addressbookui swift

我有一个问题似乎无法解决,即使我已经使用了我在谷歌和这里找到的资源.我刚开始接受Swift教学以及一个月前如何使用Xcode,因此,我很新,我遇到的问题可能对其他人来说非常简单.

我要做的是添加并保存新的联系人到地址簿.我可以从应用程序到联系人应用程序没有问题,它只是我无法保存新的联系信息.

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)
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的与我的问题有关的代码.任何帮助将不胜感激.

Rob*_*Rob 7

如今,你使用ContactsUI框架.所以,在Swift 3中,你可以这样做:

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)
    }

}
Run Code Online (Sandbox Code Playgroud)

AddressBookUI在Swift 2中使用框架的原始答案如下.


Swift代码是:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

请参阅" 地址簿编程指南:用户交互:提示和显示数据"中的" 提示用户创建新人员记录"部分.