|
Май
30
|
Столкнувшись с вопросом о способах доступа к телефонной книге в iPhone, я решил уделить полчаса изучению темы. С результатами все желающие могут ознакомиться ниже.
Для начала создаем новое приложение “View-Based Application“, присваивая ему имя “addressBook“.

Теперь нужно настроить для проекта четыре спецификатора IBOutlet и один IBAction. Не забудем и о заголовочных файлах для фреймворка адресной книги. Итак, откройте “addressBookViewController.h” и отредактируйте код, как показано ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 | #import #import #import @interface addressBookViewController : UIViewController { IBOutlet UIButton *button; IBOutlet UILabel *firstName; IBOutlet UILabel *lastName; IBOutlet UILabel *number; } -(IBAction)getContact; @end |
Следующим шагом необходимо добавить файлы фреймворка. Щелкнув правой кнопкой на опции “addressBook” в разделе “Targets” (панель слева), выберите “Get Info“.

Найдите внизу знак + и щелкните по нему. Задача — добавить следующие элементы в “AddressBook.framework” и “AddressBookUI.framework“.

Теперь определимся с интерфейсом представления — дважды щелкните на файле “addressBookViewController.xib“. Нужный нам результат представлен ниже:

Прочерки —– я использовал, чтобы указать на наличие там метки “UILabel“. Следующим шагом настроим соединения для четырех переменных типа outlet и одного действия. Вот какой результат интересен в итоге:
Нажмите для увеличения
Пора открыть файл “addressBookViewController.m” и добавить приведенные ниже методы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | -(IBAction)getContact { // создаем отборщик (picker) ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; // помещаем делегат отборщика к "picker.peoplePickerDelegate = self;" // отображаем отборщик [self presentModalViewController:picker animated:YES]; // освобождаем [picker release]; } - (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker { // отдаем управление обратно основному контроллеру [self dismissModalViewControllerAnimated:YES]; } - (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person { // задаем имя firstName.text = (NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty); // задаем фамилию lastName.text = (NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty); // задаем номер /* эта функция задает найденный первым номер при отсутствии номера для контакта вероятен сбой */ ABMultiValueRef multi = ABRecordCopyValue(person, kABPersonPhoneProperty); number.text = (NSString*)ABMultiValueCopyValueAtIndex(multi, 0); // удаляем контроллер [self dismissModalViewControllerAnimated:YES]; return NO; } - (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{ return NO; } |
Щелкнув на кнопке “Build and Go“, получим следующий вариант:






Последние комментарии
Подскажите пожалуйста… Вот...
Код не открывает страницы по простой причине -...