ContactsUI(修改联系人)

本文详细介绍了CNContactPickerViewController的功能与用法,包括初始化、显示联系人属性、通知代理、联系人存储库定制、属性高亮等功能,并提供了一个创建新联系人的Swift实战案例。
摘要由CSDN通过智能技术生成
  1. CNContactPickerViewController
    1. Required Keys
    2. Initializing View Controllers
    3. Displaying Contact Properties
    4. Notifying Delegate
    5. Contact Store
    6. Customizing Contact Card
    7. Highlighting a Property
    8. 实战
    9. 源代码
    10. 效果图

1 CNContactPickerViewController

CNContactPickerViewController可以显示一个联系人的相关信息、创建联系人或修改联系人。

1.1 Required Keys

/// 获取联系人使用的描述符
public class func descriptorForRequiredKeys() -> CNKeyDescriptor

1.2 Initializing View Controllers

/// 通过已有联系人初始化CNContactPickerViewController
public convenience init(forContact contact: CNContact)

/// 未知联系人初始化CNContactPickerViewController
public convenience init(forUnknownContact contact: CNContact)

/// 新建联系人初始化CNContactPickerViewController
public convenience init(forNewContact contact: CNContact?)

1.3 Displaying Contact Properties

/// 联系人
public var contact: CNContact { get }
/// 所属分组
public var parentGroup: CNGroup?
/// 所属集合
public var parentContainer: CNContainer?
/// 联系人显示的名称
public var alternateName: String?
/// 相关信息
public var message: String?
/// 可显示的属性
public var displayedPropertyKeys: [AnyObject]?

1.4 Notifying Delegate

/// 代理控制可显示属性,及获取修改后的联系人
weak public var delegate: CNContactViewControllerDelegate?

1.5 Contact Store

/// 联系人存储库
public var contactStore: CNContactStore?

1.6 Customizing Contact Card

/// 能否修改数据
public var allowsEditing: Bool // YES by default
/// 是否显示打电话、发短信等按钮
public var allowsActions: Bool // YES by default
/// 是否显示联系人的关联联系人
public var shouldShowLinkedContacts: Bool // NO by default

1.7 Highlighting a Property

/// 属性高亮
public func highlightPropertyWithKey(key: String, identifier: String?)

2 实战

这里展示创建新联系人的简单需求。

2.1 源代码

//
//  YJContactsUIVC.swift
//  Contact
//
//  CSDN:http://blog.csdn.net/y550918116j
//  GitHub:https://github.com/937447974/Blog
//
//  Created by yangjun on 16/1/14.
//  Copyright © 2016年 阳君. All rights reserved.
//

import UIKit
import ContactsUI

/// ContactsUI显示
class YJContactsUIVC: UIViewController, CNContactViewControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    // MARK: - Action    
    // MARK: CNContactViewController 测试
    @IBAction func onClickCNContactViewController(sender: AnyObject) {
        // 创建或修改联系人
        let vc = CNContactViewController(forNewContact: nil)
        vc.delegate = self
        self.navigationController?.pushViewController(vc, animated: true)
    }

    // MARK: - CNContactViewControllerDelegate
    func contactViewController(viewController: CNContactViewController, shouldPerformDefaultActionForContactProperty property: CNContactProperty) -> Bool {
        print(__FUNCTION__)
        print(property)
        return true
    }

    func contactViewController(viewController: CNContactViewController, didCompleteWithContact contact: CNContact?) {
        viewController.navigationController?.popViewControllerAnimated(true)
        print(__FUNCTION__)
        print(contact)
    }


}

2.2 效果图

 


Appendix

Sample Code

Swift

ContactsUI Framework Reference

Revision History

时间描述
2016-01-20博文完成

CSDN:http://blog.csdn.net/y550918116j

GitHub:https://github.com/937447974/Blog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值