Как я могу добавить контроллер UISearchDisplay ПРОГРАММНО? - PullRequest
0 голосов
/ 09 августа 2011

Я искал этот день, но не могу его найти ...

Может кто-нибудь указать мне учебник / сказать, что мне делать? Документация не очень полезна ... Мне это нужно для моего класса UITableViewController (без xib!)

Большое спасибо!

1 Ответ

1 голос
/ 08 ноября 2011

Сначала сделайте Серый UISearchBar с соответствующей панелью области действия

Затем, так как и представление таблицы, и представление таблицы поиска используют один и тот же источник данных, вы должны вставить оператор if в методы делегата представления таблицы.как это:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (tableView == self.searchDisplayController.searchResutsTableView) {
        tableViewData = searchResultsData objectatindex...; //array with filtered data
    } else {
        tableViewData = defaultData objectatindex...; //array with unfiltered data
    }
}

Сделайте то же самое для метода делегата количества строк:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (tableView == self.searchDisplayController.searchResultsTableView) {
        return searchResultsData.count;
    } else {
        return defaultData.count;
    }
}

Затем после изменения текста поиска или нажатия кнопки поиска (посмотрите на методы делегата UISearchBar)перезагрузите данные для отображения.

...