我正在尝试获取类似邮件应用的行为,其中有UISearchBar
,您可以拉动以刷新搜索结果。目前,我在IB中连接了UISearchBar
的搜索显示控制器,一切正常(我可以在主tableview
时刷新,我可以搜索)。
但是当我搜索并尝试拉动以刷新搜索结果(如邮件应用程序)时,没有UIRefreshControl
。请查看以下视频:
我想我必须UISearchBar
headerView
tableView
,但我无法引用UISearchBar
,因为它是搜索显示控制器的出口IB。这是UIRefreshControl
的代码:
//Pull to Refresh
refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(pullToRefresh)
forControlEvents:UIControlEventValueChanged];
[self.carTableView addSubview:refreshControl];
我在-viewDidLoad
包含UIViewController
tableView
方法中使用上述代码
答案 0 :(得分:0)
我通过创建另一个UIRefreshControl
并在每次用户在搜索栏中输入我可以在UISearchDispayController
中检测到的搜索文本时将其添加到- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView
来解决问题。这是代码:
//in viewDidLoad
//Pull to refresh in the search
searchRefreshControl = [[UIRefreshControl alloc] init];
[searchRefreshControl addTarget:self action:@selector(pullToRefresh) forControlEvents:UIControlEventValueChanged];
然后:
//in - (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView
//add the refresh control to the search display controller tableview
[self.searchDisplayController.searchResultsTableView addSubview:searchRefreshControl];