Che*_*Dev 0 delegates abpeoplepickerview ios
我的目标是允许用户从联系人中导入联系人详细信息(电话、姓名和电子邮件)。当我设置一个 ABPeoplePickerNavigationController 并将委托设置为 self 时,不会调用委托方法。正在显示人员选择器视图这是我的代码:
-(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];
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么?我还想补充一点,ABPeoplePicker 类似乎不再是 UIAddressBook 框架的一部分。它也不在文档中。
您正在设置delegate,它描述了应该处理 UINavigationController 的委托方法的对象。
改变
newNavController.delegate = self;
Run Code Online (Sandbox Code Playgroud)
到
newNavController.peoplePickerDelegate = self;
Run Code Online (Sandbox Code Playgroud)
(如Class Reference中所述,ABPeoplePickerNavigationController 是 UINavigationController 的子类。即使在同一个类中,一个对象拥有多个委托也很正常。)
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |