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