Write_Contacts DetailViewController.swift

//

//  DetailViewController.swift

//  Write_Contacts

// 

 

import UIKit

import Contacts

 

class DetailViewController: UITableViewController {

    

    @IBOutlet weak var imageView: UIImageView!

    

    @IBOutlet weak var lblName: UILabel!

    

    @IBOutlet weak var txtMobile: UITextField!

    @IBOutlet weak var txtIPhone: UITextField!

    

    @IBOutlet weak var txtWorkEmail: UITextField!

    @IBOutlet weak var txtHomeEmail: UITextField!

    

    var selectContact: CNContact!

    

    override func viewDidLoad() {

        super.viewDidLoad()

        

        let contactStore = CNContactStore()

        

        let keysToFetch = [CNContactFamilyNameKey, CNContactGivenNameKey, CNContactEmailAddressesKey, CNContactPhoneNumbersKey, CNContactImageDataKey]

        

        do {

            let contact = try contactStore.unifiedContactWithIdentifier(self.selectContact.identifier, keysToFetch: keysToFetch)

            

            //保存查询出的联系人

            self.selectContact = contact

            

            //取得姓名属性

            let firstName = contact.givenName

            let lastName = contact.familyName

            

            let name = "\(firstName) \(lastName)"

            self.lblName.text = name

            

            //取得Email属性

            let emailAddresses = contact.emailAddresses

            

            for emailProperty in emailAddresses {

                if emailProperty.label == CNLabelWork {

                    self.txtWorkEmail.text = emailProperty.value as? String

                } else if emailProperty.label == CNLabelHome {

                    self.txtHomeEmail.text = emailProperty.value as? String

                } else {

                    print("其他Email : \(emailProperty.value)")

                }

            }

            

            //取得电话号码属性

            let phoneNumbers = contact.phoneNumbers

            for phoneNumberProperty in phoneNumbers {

                

                let phoneNumber = phoneNumberProperty.value as! CNPhoneNumber

                

                if phoneNumberProperty.label == CNLabelPhoneNumberMobile {

                    self.txtMobile.text = phoneNumber.stringValue

                } else if phoneNumberProperty.label == CNLabelPhoneNumberiPhone {

                    self.txtIPhone.text = phoneNumber.stringValue

                } else {

                    print("其他电话 : \(phoneNumber.stringValue)")

                }

            }

            //取得个人图片

            if let photoData = contact.imageData {

                self.imageView.image = UIImage(data: photoData)

            }

            

        } catch let error as NSError {

            print(error.localizedDescription)

        }

    }

    

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    

    @IBAction func saveClick(sender: AnyObject) {

        

        let contact = self.selectContact.mutableCopy() as! CNMutableContact

        

        // 设置电话号码

        let mobilePhoneValue = CNPhoneNumber(stringValue: self.txtMobile.text!)

        let mobilePhone = CNLabeledValue(label: CNLabelPhoneNumberMobile, value: mobilePhoneValue)

        

        let iPhoneValue = CNPhoneNumber(stringValue: self.txtIPhone.text!)

        let iPhone = CNLabeledValue(label: CNLabelPhoneNumberiPhone, value: iPhoneValue)

        

        // 添加电话号码到数据库

        contact.phoneNumbers = [mobilePhone, iPhone]

        

        // 设置Email属性

        let homeEmail = CNLabeledValue(label: CNLabelHome, value: self.txtHomeEmail.text!)

        let workEmail = CNLabeledValue(label: CNLabelWork, value: self.txtWorkEmail.text!)

        

        // 添加Email到数据库

        contact.emailAddresses = [homeEmail, workEmail]

        

        //最后保存

        let request = CNSaveRequest()

        request.updateContact(contact)

        

        let contactStore = CNContactStore()

        

        do {

            try contactStore.executeSaveRequest(request)

            //导航回根视图控制器ViewController

            self.navigationController?.popToRootViewControllerAnimated(true)

            

        } catch let error as NSError {

            print(error.localizedDescription)

        }

    }

    

    @IBAction func deleteClick(sender: AnyObject) {

        

        let contact = self.selectContact.mutableCopy() as! CNMutableContact

        

        let request = CNSaveRequest()

        request.deleteContact(contact)

        

        let contactStore = CNContactStore()

        

        do {

            try contactStore.executeSaveRequest(request)

            //导航回根视图控制器ViewController

            self.navigationController?.popToRootViewControllerAnimated(true)

            

        } catch let error as NSError {

            print(error.localizedDescription)

        }

    }

    

}

 

转载于:https://my.oschina.net/ldm95/blog/699346

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值