1

我想在 ABPeoplePickerNavigationController 中显示过滤后的联系人列表,应该显示有他们的电子邮件地址的人,而那些没有电子邮件地址的人不应该在列表中,有人知道怎么做吗?

提前致谢。

4

2 回答 2

0

嗨,您可以使用 peoplePickerNavigationController Delegate 来执行此操作

-(BOOL)peoplePickerNavigationController:
(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
 {
    if(!ABRecordCopyValue(person,kABPersonEmailProperty) //Check if email field is empty
    { 
         [peoplePicker dismissModalViewControllerAnimated:NO]; //dismiss the person with email field empty
    } 
    return YES;
    }
}

不要忘记在 .h 文件中使用标签在您的界面上添加委托

IE,

#import <UIKit/UIKit.h>
#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>

@interface ViewController : UITableViewController<ABNewPersonViewControllerDelegate,ABPeoplePickerNavigationControllerDelegate,ABPersonViewControllerDelegate,UIAlertViewDelegate>
于 2013-08-07T10:58:23.043 回答
-1

您可以以与电子邮件地址相同的方式使用以下链接。 无法在不崩溃的情况下设置 ABPeoplePickerNavigationController 的 addressBook 属性

唯一的问题是导致失败的 ABAddressBookRemoveRecord。

如果我是你,我会遍历所有联系人,使用电子邮件地址获取联系人的姓名,然后获取电子邮件地址。然后将它们放在 TableView 中。

于 2011-05-31T11:43:02.083 回答