UISearchController, созданный для iOS 8, не поддерживающий предыдущие версии

Привет, я создал UISearchController для поиска табличного представления в моем приложении, так как я узнал, что методы UISearchDisplay Controller устарели для iOS 8, теперь все отлично работает в симуляторе 8.1, когда я пытался запустить свое приложение в iPad, которое это ios версии 7.1, я обнаружил, что панель поиска отсутствует, поэтому, пожалуйста, помогите мне создать панель поиска, которая поддерживает все версии iOS от 6.0

- (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];

1 ответ

Решение

Нет хорошего ответа.

Если вы хотите одну реализацию, то правильный, правильный ответ: использовать UISearchDisplayController, Но, как вы говорите, это устарело. Это работает сейчас, но может уйти в какой-то момент в будущем.

Другие опции:

  • Держите текущий UISearchController реализация для пользователей iOS 8 и создание параллельной реализации с использованием UISearchDisplayController для пользователей iOS 7. Преимущество этого заключается в том, что вы можете удалить устаревшую версию, когда вам больше не нужна поддержка iOS 7.
  • Отбросьте поддержку iOS 7

Для моих личных проектов я обычно выбираю вариант 2, но, очевидно, это не всегда вариант.