0

こんにちは、アプリでテーブルビューを検索するために UISearchController を作成しました。iOS 8 では UISearchDisplay Controller メソッドが非推奨になっていることがわかったので、iPad でアプリを実行しようとしたときに、8.1 シミュレーターですべてが正常に動作するようになりました。は 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 に答える