ABPeoplePickerNavigationController программный поиск? - PullRequest
2 голосов
/ 04 июля 2010

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

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

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

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

РЕДАКТИРОВАТЬ: Чтобы быть более ясным, я хочу вызвать ABPeoplePicker, но уже "средний поиск" с поисковым термином, который пришел из других мест вприложение.Если пользователь хочет отменить этот поиск и запустить свой собственный, это нормально, но я хочу предварительно загрузить searchviewcontroller своим собственным термином.

Ответы [ 2 ]

1 голос
/ 18 декабря 2013

Если кому-то все еще интересно это, я нашел решение, манипулируя состоянием первого респондента searchBar в блоке завершения презентации:

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

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

0 голосов
/ 27 июля 2010

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

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

...