私がやろうとしているのは、ユーザー ピッカーをユーザーに表示し、必要なすべての連絡先を選択させ、最終的にそれらすべての連絡先の電子メール アドレスを配列で取得することです。最良の方法は、ユーザーに電子メールを送信した連絡先のみを表示することです。
今まで私ができた唯一のことは、ピープルピッカーに次のコードを提示することです:
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>."
どんな助けでも大歓迎です。