2016-08-15 4 views
3

Я хочу использовать контакты UI CNContactViewController.init(forNewContact: a) только для просмотра и получения значения на сервере. Однако сейчас функция func также добавляет контакт в адресное/контактное приложение, можно ли это предотвратить?Использование CNContactViewController без добавления контакта (быстрый)

+0

ли вы найти решение для этого? – beseder

+0

@beseder Когда мы используем делегат contactViewController, мы получаем CNcontact сразу после щелчка, поэтому я получаю идентификатор от этого cncontact и делеле. Использовать ForNewContact -> done -> отправить свои данные на наш сервер/приложение -> удалить контакт с ios contact программно –

+0

Спасибо! Это то, что я также закончил тем временем :-) Но он чувствует себя плохо ... И больше всего: ему нужен доступ на запись к контактам пользователя, который мне на самом деле НЕ нужен. Таким образом, свойство 'contactStore'' CNContactViewController' не ведет себя так же документировано, не так ли? – beseder

ответ

0

Контакты Framework Ссылка: https://developer.apple.com/library/ios/documentation/Contacts/Reference/Contacts_Framework/

образец: ViewController.swift файлы

import UIKit 
import ContactsUI 

class ViewController: UIViewController, CNContactPickerDelegate { 

let contactPickerViewController = CNContactPickerViewController() 
@IBOutlet var titleLabel: UILabel! 
@IBOutlet var valueLabel: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    contactPickerViewController.delegate = self 
    // Do any additional setup after loading the view, typically from a nib. 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 

    // Dispose of any resources that can be recreated. 
} 

@IBAction func touchUpInside(sender: UIButton) { 
    self.presentViewController(contactPickerViewController, animated: true, completion: nil) 
} 

func contactPicker(picker: CNContactPickerViewController, didSelectContactProperty contactProperty: CNContactProperty) { 

    titleLabel.text = "" 
    valueLabel.text = "" 

    if let label = contactProperty.label { 
     titleLabel.text = CNLabeledValue.localizedStringForLabel(label) 
    } 

    if let phone = contactProperty.value as? CNPhoneNumber { 
     valueLabel.text = phone.stringValue 
    } 

    if let stringData = contactProperty.value as? String { 
     valueLabel.text = stringData 
    } 

    if let adress = contactProperty.value as? CNPostalAddress { 
     let adressString = adress.street + " " + adress.city + " " + adress.country + " " + adress.postalCode 
     valueLabel.text = adressString 
    } 

} 
} 

загрузки проекта: https://www.dropbox.com/s/yqdhqld0osp508b/Archive.zip?dl=0

+0

Это решение помогло? –

Смежные вопросы