ios - 添加和保存新联系人到地址簿

标签 ios swift addressbook addressbookui

我有一个似乎无法完全解决的问题,即使我使用了在 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)
    }
}

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

最佳答案

如今,您会使用 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)
    }

}

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


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

请参阅 Address Book Programming Guide: User Interaction: Prompting for and Displaying Data提示用户创建新人员记录部分.

关于ios - 添加和保存新联系人到地址簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26641531/

相关文章:

iphone - 在 iOS 5.0/XCode 4.2 中使用带有 ABAddressBook 的电子名片

c# - 如何在 .NET MAUI 上的 iOS 和 Mac 之间共享代码? (无条件编译,无代码重复)

iphone - 我们可以限制某些网站在 WebView 中打开吗

ios - Swift 2.0 中的 UIView.animateWithDuration

swift - 使用后退按钮更改图像 ImageView

objective-c - 从应用程序保存到联系人 : Nothing Happening/Error

iOS 9 黑色键盘破坏布局

ios - 在 View Controller 之间传递图像在呈现模态视图时不起作用

ios - SwiftUI - 输入文本时防止 TextField 扩展

ios - 将方法连接到按钮并初始化