UISearchDisplayController
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 8.0.
Важный: UISearchDisplayController осуждается в iOS 8. (Обратите внимание на то, что UISearchDisplayDelegate также осуждается.) Для управления представлением панели поиска и результатов поиска дисплея в iOS 8 и позже вместо этого используйте UISearchController.
Поисковый контроллер дисплея управляет дисплеем панели поиска, вместе с табличным представлением что результаты поиска дисплеев.
Вы инициализируете поисковый контроллер дисплея с панелью поиска и контроллер представления, ответственный за управление данными, которые будут искаться. Когда пользователь запускает поиск, поисковый контроллер дисплея накладывает поисковый интерфейс на исходное представление контроллера представления и показывает результаты поиска в его табличном представлении.
В дополнение к управлению доступными для поиска данными исходный контроллер представления обычно играет еще четыре роли, которые необходимо заполнить при использовании поискового контроллера дисплея. Те роли являются следующим:
Источник данных для табличного представления результатов поиска (
searchResultsDataSource), который предоставляет данные для таблицы результатов.Делегат к табличному представлению результатов поиска (
searchResultsDelegate), который реагирует на выбор пользователем элемента в таблице результатов.Делегат к поисковому контроллеру дисплея (
delegate), который реагирует на события такой запуск или окончание поиска, и показа или сокрытия поискового интерфейса.Как удобство, этому делегату можно также сказать об изменениях в строке поиска или поисковом объеме, так, чтобы могло быть перезагружено представление таблицы результатов.
Делегат к панели поиска (
delegateописанный в Ссылке класса UISearchBar), который реагирует на изменения в критериях поиска.
Как правило, Вы инициализируете поисковый контроллер дисплея от контроллера представления (обычно экземпляр UITableViewController) это выводит на экран список. Посмотрите Простой UISearchBar с проектом примера кода Восстановления состояния для примера того, как сконфигурировать поисковый контроллер дисплея в Интерфейсном Разработчике. Для выполнения конфигурации программно установить self для поискового контроллера представления контроллера дисплея и источника данных результатов поиска и делегата, как показано здесь:
searchController = [[UISearchDisplayController alloc]initWithSearchBar:searchBar contentsController:self];searchController.delegate = self;searchController.searchResultsDataSource = self;searchController.searchResultsDelegate = self;
Если Вы следуете за этим образцом, то в источнике данных табличного представления и методах делегата можно проверить параметр табличного представления методов для определения, какое табличное представление отправляет сообщение:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {if (tableView == self.tableView) {return ...;}// If necessary (if self is the data source for other table views),// check whether tableView is searchController.searchResultsTableView.return ...;}
Запускаясь в iOS 7.0, можно использовать поисковый контроллер дисплея с панелью навигации (экземпляр UINavigationBar класс) путем конфигурирования поискового контроллера дисплея displaysSearchBarInNavigationBar и navigationItem свойства.
-
Возвращает контроллер дисплея, инициализированный с данной панелью поиска и контроллером содержания.
Объявление
Swift
init(searchBarsearchBar: UISearchBar!, contentsControllerviewController: UIViewController!)Objective C
- (instancetype)initWithSearchBar:(UISearchBar *)searchBarcontentsController:(UIViewController *)viewControllerПараметры
searchBarПанель поиска.
Панель поиска не должна в настоящее время связываться с другим поисковым контроллером дисплея.
viewControllerКонтроллер представления, управляющий дисплеем исходного содержания, которое должно искаться.
Контроллер представления не должен в настоящее время связываться с другим поисковым контроллером дисплея.
Возвращаемое значение
Поисковый контроллер дисплея, инициализированный с данной панелью поиска и контроллером содержания.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 8.0.
-
Состояние видимости поискового интерфейса.
Объявление
Swift
var active: BoolObjective C
@property(nonatomic, getter=isActive) BOOL activeОбсуждение
Значение по умолчанию
NOfalse.При установке этого значения непосредственно любое изменение выполняется без анимации. Использовать
setActive:animated:если должно быть анимировано изменение в состоянии.Когда пользовательский фокус в поле поиска бара поиска, которым управляют, поисковый контроллер дисплея автоматически выводит на экран поисковый интерфейс. Можно использовать это свойство, чтобы вынудить поисковый интерфейс появиться.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 8.0.
-
Дисплеи или скрывают поисковый интерфейс, дополнительно с анимацией.
Объявление
Swift
func setActive(_visible: Bool, animatedanimated;: Bool)Objective C
- (void)setActive:(BOOL)visibleanimated:(BOOL)animated;Параметры
visibleYEStrueвывести на экран поисковый интерфейс, если это уже не выведено на экран;NOfalseскрыть поисковый интерфейс, если это в настоящее время выводится на экран.animated;YEStrueиспользовать анимацию для разнообразия в видимом состоянии, иначеNOfalse.Обсуждение
Когда пользовательский фокус в поле поиска бара поиска, которым управляют, поисковый контроллер дисплея автоматически выводит на экран поисковый интерфейс. Можно использовать этот метод, чтобы вынудить поисковый интерфейс появиться.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 8.0.
-
Делегат контроллера.
Объявление
Swift
unowned(unsafe) var delegate: UISearchDisplayDelegate?Objective C
@property(nonatomic, assign) id< UISearchDisplayDelegate > delegateОператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 8.0.
-
Панель поиска. (только для чтения)
Объявление
Swift
var searchBar: UISearchBar! { get }Objective C
@property(nonatomic, readonly) UISearchBar *searchBarОператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 8.0.
-
Контроллер представления, управляющий искавшим содержанием. (только для чтения)
Объявление
Swift
var searchContentsController: UIViewController! { get }Objective C
@property(nonatomic, readonly) UIViewController *searchContentsControllerОбсуждение
Это обычно - экземпляр
UITableViewController.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 8.0.
-
Табличное представление, в котором выведены на экран результаты поиска. (только для чтения)
Объявление
Swift
var searchResultsTableView: UITableView! { get }Objective C
@property(nonatomic, readonly) UITableView *searchResultsTableViewОбсуждение
Этот метод создает новое табличное представление, если Вы уже не существуете.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 8.0.
-
Источник данных для табличного представления, в котором выведены на экран результаты поиска.
Объявление
Swift
unowned(unsafe) var searchResultsDataSource: UITableViewDataSource?Objective C
@property(nonatomic, assign) id< UITableViewDataSource > searchResultsDataSourceОбсуждение
Значение по умолчанию
nil.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 8.0.
-
Делегат к табличному представлению, в котором выведены на экран результаты поиска.
Объявление
Swift
unowned(unsafe) var searchResultsDelegate: UITableViewDelegate?Objective C
@property(nonatomic, assign) id< UITableViewDelegate > searchResultsDelegateОбсуждение
Значение по умолчанию
nil.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 8.0.
-
Заголовок для представления результатов поиска.
Объявление
Swift
var searchResultsTitle: String?Objective C
@property(nonatomic, copy) NSString *searchResultsTitleОбсуждение
Значение по умолчанию
nil.Если значение
nil, контроллер использует строку заголовка по умолчанию.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 5.0 и позже.
Осуждаемый в iOS 8.0.
-
Указывает, что панель навигации содержит панель поиска.
Объявление
Swift
var displaysSearchBarInNavigationBar: BoolObjective C
@property(nonatomic, assign) BOOL displaysSearchBarInNavigationBarОбсуждение
Когда Вы возвращаетесь
YEStrueдля отображения панели поиска в панели навигации система использует поисковый контроллер дисплеяnavigationItemсвойство и игнорирует элемент навигации, если установлено,searchContentsControllerконтроллер представления. Выведенное на экран поле поиска занимает как можно больше ширины в панели навигации.Панель поиска, выведенная на экран в панели навигации, не может иметь панели объема.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
Осуждаемый в iOS 8.0.
-
Представляет поисковый контроллер дисплея в панели навигации контроллера навигации. (только для чтения)
Объявление
Swift
var navigationItem: UINavigationItem! { get }Objective C
@property(nonatomic, readonly) UINavigationItem *navigationItemОбсуждение
Можно сконфигурировать элемент навигации, как описано в Ссылке класса UINavigationItem, за исключением конфигурирования представления заголовка.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
Осуждаемый в iOS 8.0.
