ABAddressBook отфильтрованные контакты - PullRequest
1 голос
/ 01 июля 2010

Я хочу показать отфильтрованный список контактов в ABPeoplePickerNavigationController, должны отображаться лица, у которых есть свой адрес электронной почты, и те, у кого нет адреса электронной почты, не должны быть в списке, кто-нибудь знает, как это сделать?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 07 августа 2013

Привет, вы можете использовать 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

, то есть

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

@interface ViewController : UITableViewController<ABNewPersonViewControllerDelegate,ABPeoplePickerNavigationControllerDelegate,ABPersonViewControllerDelegate,UIAlertViewDelegate>
0 голосов
/ 31 мая 2011

Вы можете использовать ссылку ниже с адресами электронной почты. Невозможно установить свойство addressBook ABPeoplePickerNavigationController без сбоя

Единственная проблема с ABAddressBookRemoveRecord, которая вызывает сбои.

На вашем месте я бы перебирал все контакты, получал имена контактов с адресом электронной почты и получал там адреса электронной почты. Затем поместите их в TableView.

...