2015-12-02 3 views
0

Я ориентирую свое приложение на работу в iOS7 и выше. Я хочу разместить панель поиска в заголовке tableView. Я использую UISearchController для iOS8 и выше, где я помещаю объявление глобально.Как объявить uisearchController глобально в Swift

var searchController : UISearchController! 

Однако, если изменить цель iOS7, ошибка показывает

'UISearchController' is only available on iOS 8.0 or newer 

XCode предположить, что я поставил

@available(iOS 8.0, *) 

атрибут вмещающих класса для того, чтобы мне исправить Это. Таким образом, весь класс можно запустить только с помощью iOS8 и выше.

Моя цель - выполнить поиск с использованием UISearchDisplayController для iOS7 и UISearchController для iOS8 и выше. Для этого мне нужно объявить его как глобальную переменную, так как мне нужна переменная, чтобы изменить поведение TableView.

Могу ли я узнать, как объявить переменную глобально, чтобы я мог достичь своей цели? спасибо.

+2

, если ваше приложение хочет поддерживать все ИОС, и можно просто использовать searchdisplaycontroller для всех, там ничем не отличается вообще, у также может использовать только SearchBar если те 2 загроможден – Tj3n

ответ

0

Перед объявлением переменной searchController проверьте версию iOS и выполните свою инициализацию соответственно. Есть ли что-то вроде этого

if #available(iOS 8.0, *) { 
       // your iOS 8 related code 
      } else { 
       // Fallback on earlier versions 
      }; 
Смежные вопросы