6

即使我使用了在 Google 和此处找到的资源,我也有一个似乎无法完全解决的问题。大约一个月前,我才开始学习 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)
    }
}

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

4

1 回答 1

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

}

AddressBookUI下面是我在 Swift 2 中使用框架的原始答案。


斯威夫特代码是:

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

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

于 2014-10-29T23:24:21.473 回答