ABAddressBook过滤了联系人

时间:2010-07-01 08:14:40

标签: iphone email abaddressbook

我想在ABPeoplePickerNavigationController中显示已过滤的联系人列表,应该显示拥有其电子邮件地址的人员,并且不应该有没有电子邮件地址的人不在列表中,有人知道怎么做吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您好,您可以使用peoplePickerNavigationController委托来执行此操作

-(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文件中标签的委托

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

@interface ViewController : UITableViewController<ABNewPersonViewControllerDelegate,ABPeoplePickerNavigationControllerDelegate,ABPersonViewControllerDelegate,UIAlertViewDelegate>

答案 1 :(得分:-1)

您可以使用以下链接以相同的方式使用电子邮件地址。 Can't set the addressBook property of ABPeoplePickerNavigationController without crashing

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

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