如何将UISearchDisplayController与栏按钮项iOS 7集成

时间:2014-05-20 03:13:26

标签: ios7 uinavigationcontroller uibarbuttonitem nsfetchedresultscontroller uisearchdisplaycontroller

到目前为止,我只熟悉UISearchDisplayController的一种做法,即将它与放在tableView上的UISearchBar集成在一起。我看到一些应用程序在单击栏按钮项时触发UISearchDisplayController而不是触摸searchBar。有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

通过在搜索栏的2个委托方法中编写以下代码,我已经找到了一个技巧

- (void)searchButtonTapped:(id)sender
{
   self.dictionaryTableView.tableHeaderView = _searchBar;
   [self.searchDC setActive:YES animated:YES];
   [self.searchDC.searchBar becomeFirstResponder];
}

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
    [self.searchDC setActive:NO animated:YES];
    self.dictionaryTableView.tableHeaderView = nil;
}

如果搜索栏不是视图的一部分,则问题是UISearchDisplayController甚至不会出现调用setActive。因此,当点击按钮时,我将searchBar设置为tableViewHeader,并激活searchdisplaycontroller。然后当搜索完成时,我停用searchdisplaycontroller,并设置nil tableViewHeader以确保搜索栏不会在屏幕上显示。