2010-07-03 1 views
2

Я хочу вытащить адресную книгу пользователя и использовать новый контроллер PeoplePicker, чтобы отобразить результаты, чтобы отобразить только те, которые соответствуют определенному термину. Я вижу, что UIPeoplePickerNavigationController имеет панель поиска и встроенный в нее поиск. Похоже на довольно стандартный материал, я его никогда раньше не использовал.ABPeoplePickerNavigationController программный поиск?

Как я мог бы получить это программно из подкласса UIViewController, который только что представил PeoplePicker по модулю?

Вот что я пробовал до сих пор. Излишне говорить, что это не работает.

ABPeoplePickerNavigationController *pick = [[ABPeoplePickerNavigationController alloc] init]; 
pick.searchDisplayController.searchBar.text = @"jim"; 
[self presentModalViewController:pick animated:YES]; 
[pick release]; 

EDIT: Чтобы быть более ясным, я хочу воспитывать ABPeoplePicker, но уже «в середине поиска» с термином поиска, которые пришли из других в приложении. Если пользователь хочет отменить этот поиск и запустить свой собственный, это нормально, но я хочу предварительно загрузить контрольный элемент searchview с моим собственным термином.

ответ

0

проверить это, объявили ли вы ABPeoplePickerNavigationControllerDelegate или нет.

а затем запустите приложение. Я надеюсь, что это поможет вам

1

В случае, если кто все еще интересно об этом, я достиг решение, манипулируя первый статус ответчика SearchBar в блоке завершения презентации:

[self presentViewController:pick animated:YES completion:^{ 
    UISearchBar *bar = pick.visibleViewController.searchDisplayController.searchBar; 
    [bar becomeFirstResponder]; 
    [bar setText:@"jim"]; 
    [bar resignFirstResponder]; 
}]; 

Там это кратковременная задержка прежде чем он подтягивает результаты поиска, но это лучший способ, который я нашел для выполнения программных поисков в ABPeoplePickerNavigationController