Swift 3 添加带有电话和电子邮件信息的新联系人

Posted

技术标签:

【中文标题】Swift 3 添加带有电话和电子邮件信息的新联系人【英文标题】:Swift 3 add new contact with phone and email information 【发布时间】:2017-01-20 04:10:13 【问题描述】:

我正在尝试提示用户创建新联系人并传递信息。 (特别是电话和电子邮件)

我发现了许多使用 CNMutableContact 并向其添加电子邮件的示例。但是,任何涉及 CNContact 的代码都会给我一个“使用未声明的类型”错误。

如何设置我的班级以提示用户保存联系人?

【问题讨论】:

【参考方案1】:
import ContactsUI

//add CNContactViewControllerDelegate to your ViewController
class ViewController: UIViewController , CNContactViewControllerDelegate 

func addPhoneNumber(phNo : String) 
  if #available(ios 9.0, *) 
      let store = CNContactStore()
      let contact = CNMutableContact()
      let homePhone = CNLabeledValue(label: CNLabelHome, value: CNPhoneNumber(stringValue :phNo ))
      contact.phoneNumbers = [homePhone]
      let controller = CNContactViewController(forUnknownContact : contact)
      controller.contactStore = store
      controller.delegate = self
      self.navigationController?.setNavigationBarHidden(false, animated: true)
      self.navigationController!.pushViewController(controller, animated: true)
  

【讨论】:

@BijenderSinghShekhawat 你还需要导入 Contacts 和 ContactsUI @ganesh 但是你如何将它添加到用户的手机数据库中(我猜它是 CoreData)【参考方案2】:

你可以这样做。

extension ViewController: CNContactViewControllerDelegate 

    func showNewContactViewController() 

        let contactViewController: CNContactViewController = CNContactViewController(forNewContact: nil)
        contactViewController.contactStore = CNContactStore()
        contactViewController.delegate = self
        let navigationController: UINavigationController = UINavigationController(rootViewController: contactViewController)
        present(navigationController, animated: false) 
            print("Present")
        
    

【讨论】:

【参考方案3】:

斯威夫特 4

import ContactsUI

实现委托CNContactViewControllerDelegate

@IBAction func UserTap_Handler(_ sender: Any) 

        self.navigationController?.isNavigationBarHidden = false
        let con = CNContact()
        let vc = CNContactViewController(forNewContact: con)
        vc.delegate = self
        _ = self.navigationController?.pushViewController(vc, animated: true)
    

    //MARK:- contacts delegates
    func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) 
        print("dismiss contact")
        self.navigationController?.popViewController(animated: true)
    
    func contactViewController(_ viewController: CNContactViewController, shouldPerformDefaultActionFor property: CNContactProperty) -> Bool 
        return true
    

【讨论】:

以上是关于Swift 3 添加带有电话和电子邮件信息的新联系人的主要内容,如果未能解决你的问题,请参考以下文章

阅读联系人电话和电子邮件

使用 phonegap 将电话号码和电子邮件添加到 iOS 中的联系人 [关闭]

WordPress。联系信息和 css 没有改变

使用文档对象在页面上创建学生信息表。 信息表包括学号姓名性别电子邮件联系电话个人主页和联系地址, 信息表内容通过表单输入,提交前先使用正则表达式进行验证,联系地址不能超过20

我无法从电话联系人中加载电子邮件地址

仅在 android 中显示带有 EMAIL 地址的联系人