2013-12-07 2 views
0

Моя цель - разрешить пользователю импортировать контактные данные (телефон, имя и адрес электронной почты) из контактов. Когда я настраиваю ABPeoplePickerNavigationController и устанавливаю делегат для себя, методы делегата не вызываются. Здесь отображается мой выбор:ABPeoplePickerNavigationController Делегат не работает

-(IBAction)importFromContacts:(id)sender 
{ 

    ABPeoplePickerNavigationController *newNavController = [[ABPeoplePickerNavigationController alloc] init]; 
    newNavController.delegate = self; 
    [self presentViewController:newNavController animated:YES completion:nil]; 

} 

-(void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker 
{ 
    NSLog(@"cancel"); 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

Что мне не хватает? Я также хотел бы добавить, что класс ABPeoplePicker больше не является частью структуры UIAddressBook. Это не в документах.

ответ

4

Вы устанавливаете delegate, в котором описывается объект, который должен обрабатывать методы делегатов UINavigationController.

Изменить

newNavController.delegate = self; 

в

newNavController.peoplePickerDelegate = self; 

(Как описано в Class Reference, ABPeoplePickerNavigationController является подклассом UINavigationController. Это не из обычного для объекта, чтобы иметь несколько делегатов, даже в пределах такой же класс.)

+0

Удивительное спасибо вам! – ChemDev

+0

Нет проблем ... просто не позвольте этому снова случиться;) –

0

использование этот - (void) жителиPi ckerNavigationController: (ABPeoplePickerNavigationController *) peoplePicker didSelectPerson: (ABRecordRef) человек

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

  • Нет связанных вопросов^_^