#swift2
#swift2
Вопрос:
У меня есть приложение, в котором есть кнопка с именем «контакты». Я должен получить доступ к своим телефонным контактам, когда я нажимаю на него.Также я должен получить номер телефона от выбранного контакта. Может кто-нибудь, пожалуйста, предложить рабочий код?
Ответ №1:
Я все равно его получил. Вот как я это сделал
//class content
class ViewController: UIViewController, ABPeoplePickerNavigationControllerDelegate, UINavigationControllerDelegate
Следующий исходный код откроет представление контактов и позволит пользователю выбирать информацию о людях из контакта.
@IBAction func OpenContactView(sender: UIButton) {
self.presentViewController(self.peopleSelector, animated: true, completion: nil);
}
После того, как пользователь выберет людей в представлении контактов?Будет вызвана функция peoplePickerNavigationController делегата ABPeoplePickerNavigationControllerDelegate. Вот пример исходного кода Swift.
func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController, didSelectPerson person: ABRecord) {
peoplePicker.dismissViewControllerAnimated(true, completion: nil);
let index = 0 as CFIndex;
//Get Name
var firstName:String?;
let firstNameObj = ABRecordCopyValue(person, kABPersonFirstNameProperty);
if(firstNameObj != nil) {
firstName = firstNameObj.takeRetainedValue() as? String;
} else {
firstName = "";
}
var lastName:String?;
let lastNameObj = ABRecordCopyValue(person, kABPersonLastNameProperty);
if(lastNameObj != nil) {
lastName = lastNameObj.takeRetainedValue() as? String;
} else {
lastName = "";
}
//Get Phone Number
var phoneNumber:String?;
let unmanagedPhones:Unmanaged? = ABRecordCopyValue(person, kABPersonPhoneProperty);
if(unmanagedPhones != nil) {
let phoneNumbers = unmanagedPhones?.takeRetainedValue();
if(ABMultiValueGetCount(phoneNumbers) > 0) {
phoneNumber = ABMultiValueCopyValueAtIndex(phoneNumbers, index).takeRetainedValue() as? String;
phoneNumber = "Phone Number is empty!";
} else {
phoneNumber = "Phone Number is empty!";
}
self.phoneLabel.text = phoneNumber;
}
}