0

嗨,我创建了一个 UISearchController 来在我的应用程序中搜索一个 tableview,因为我知道 UISearchDisplay Controller 方法在 iOS 8 中已被弃用,现在在 8.1 模拟器中一切正常,当我试图在 iPad 上运行我的应用程序时是 ios 版本 7.1,我发现搜索栏不见了,所以请帮助我如何创建一个支持从 6.0 开始的所有 iOS 版本的搜索栏

- (void)updateSearchResultsForSearchController:(UISearchController *)searchController {
    UISearchBar *searchBar = searchController.searchBar;

    if (searchBar.text.length > 0) {
        NSString *text = searchBar.text;
        NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(NSString *play, NSDictionary *dict) {
        NSRange range = [play rangeOfString:text options:NSCaseInsensitiveSearch];

        return range.location != NSNotFound;
    }];

    NSArray *searchResults = [self.dataARR filteredArrayUsingPredicate:predicate];
4

1 回答 1

0

没有一个好的答案。

如果您想要一个实现,那么正确的当前答案是:使用UISearchDisplayController. 但是,正如您所说,这已被弃用。它现在可以工作,但将来可能会消失。

其他选项:

  • 为 iOS 8 用户保留当前UISearchController实现,并为 iOS 7 用户创建并行实现UISearchDisplayController。这样做的好处是您可以在不再需要支持 iOS 7 时删除已弃用的版本。
  • 放弃对 iOS 7 的支持

对于我的个人项目,我通常选择选项 2,但显然,这并不总是一个选项。

于 2015-03-10T14:38:10.627 回答