2010-07-03 53 views
2

我想拉起用戶的通訊錄,並使用新的PeoplePicker控制器對結果進行切片,以顯示與某個特定術語相匹配的結果。我看到UIPeoplePickerNavigationController中嵌入了搜索欄和搜索視圖。看起來很標準的東西,我以前從來沒有用過。ABPeoplePickerNavigationController程序化搜索?

如何以編程方式從剛剛提供PeoplePicker模式的UIViewController子類獲取?

這是我到目前爲止所嘗試的。不用說,它不起作用。

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

編輯:爲了更清楚,我想提出一個ABPeoplePicker,但已經「中搜索」與從其他地方的應用程序來搜索項。如果用戶想要取消搜索並自行運行,那很好,但我想先用我自己的術語預先加載searchviewcontroller。

回答

0

檢查您是否聲明瞭ABPeoplePickerNavigationControllerDelegate。

然後運行您的應用程序。我希望它會幫助你

1

如果有人仍然不知道這件事,我已經在演示結束塊操縱搜索欄的第一個響應狀態達到了一個解決方案:

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

有一個短暫的延遲在提取搜索結果之前,但這是我發現的在ABPeoplePickerNavigationController中完成編程搜索的最佳方式。