我想要做的是向用户显示人员选择器,让他选择他想要的所有联系人,并最终将所有联系人的电子邮件地址都放入数组中。 最好的是只显示给用户的电子邮件联系人。iOS获取所选联系人的电子邮件地址
到现在为止我已经能够做的就是展示人与此代码选取器的唯一的事情:
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
[self presentModalViewController:picker animated:YES];
然后我尝试使用此代码来获得所选择的联系人的电子邮件:
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
ABMultiValueRef multi = ABRecordCopyValue(person, kABPersonEmailProperty);
[email addObject:(__bridge NSString*)ABMultiValueCopyValueAtIndex(multi, 0)];
[self dismissModalViewControllerAnimated:YES];
return YES;
}
但是,只要我选择一个联系人,选取器就会消失,所以我不知道如何继续。 此外,权当我选择一个联系人,我得到这个在控制台:
"Unbalanced calls to begin/end appearance transitions for
<ABMembersViewController: 0xa1618c0>."
任何帮助,将不胜感激。
我不相信你可以有电子邮件地址'ABPeoplePickerNavigationController'只显示联系人,但有效的iOS 8,你可以让它禁用(即灰掉)那些没有电子邮件地址的联系人。如果只想显示带有电子邮件地址的人,则可以使用电子邮件地址([和此处显示](http://stackoverflow.com/a/25254013/1271826))构建一个数组,然后在该列表中显示你自己的桌子视图。 – Rob 2014-08-12 15:45:43