我想提取用户的地址簿,并使用新的PeoplePicker控制器对结果进行切片,以显示与特定术语匹配的结果。我看到UIPeoplePickerNavigationController有一个嵌入搜索栏和搜索视图。看起来很标准的东西,我以前从未用过它。
我如何从一个刚刚以模态方式呈现PeoplePicker的UIViewController子类以编程方式获得该命令?
这是我到目前为止所尝试的内容。不用说,它不起作用。
ABPeoplePickerNavigationController *pick = [[ABPeoplePickerNavigationController alloc] init];
pick.searchDisplayController.searchBar.text = @"jim";
[self presentModalViewController:pick animated:YES];
[pick release];
编辑:为了更清楚,我想提出一个ABPeoplePicker,但已经“搜索中期”,搜索词来自应用程序的其他地方。如果用户想要取消该搜索并运行他们自己的搜索,那很好,但我想首先使用我自己的术语预先加载searchviewcontroller。
答案 0 :(得分:1)
如果有人仍然想知道这一点,我通过在演示文稿完成块中操纵searchBar的第一个响应者状态来达到解决方案:
[self presentViewController:pick animated:YES completion:^{
UISearchBar *bar = pick.visibleViewController.searchDisplayController.searchBar;
[bar becomeFirstResponder];
[bar setText:@"jim"];
[bar resignFirstResponder];
}];
在提取搜索结果之前有一个短暂的延迟,但这是我在ABPeoplePickerNavigationController中完成编程搜索的最好方法
答案 1 :(得分:0)
检查您是否声明了ABPeoplePickerNavigationControllerDelegate。
然后运行您的应用。我希望它会对你有所帮助