UITableView -reloadSectionIndexTitles не вызывает источник данных - PullRequest
1 голос
/ 02 июля 2010

Я пытаюсь реализовать UISearchBar в UITableView, который ведет себя так же, как на вкладке «Исполнители» приложения iPod.

Он скрывает панель навигации и изменяет размеры поля поиска, чтобы отобразить кнопку «Отмена» и т. Д., Но не удается скрыть заголовки указателей разделов.

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
  inSearchMode_ = YES; // tell sectionIndexTitlesForTableView: to return nil
  tableView_.scrollEnabled = NO; // works correctly, var is definitely wired
  [tableView_ reloadSectionIndexTitles]; // doesn't call sectionIndexTitlesForTableView:
  ...

Я что-то упустил? UITableView -reloadSectionIndexTitles сломан?

Как правило, мой ответ на такого рода вещи должен был бы вызвать reloadData, но это побочный эффект, заставляющий UISearchBar потерять фокус.

Ответы [ 2 ]

1 голос
/ 02 июля 2010

Я думаю, что вы подходите по этим направлениям (скажем, у вас есть ArtistController, который вы хотите сделать доступным для поиска):

  • Добавьте субконтроллер для ArtistController с именем ArtistSearchController
  • Если щелкнуть окно поиска, переместите ArtistSearchController на передний план как модальный (чтобы скрыть художников) или добавьте прозрачность, если вы все еще хотите показывать художников в фоновом режиме.
  • Когда введен критерий поиска, создаетсямодель для ArtistSearchController, которая представляет собой данные из ArtistController, отфильтрованные по поисковому запросу, а затем отобразить их в виде списка
  • закрыть модальное представление, когда пользователь нажимает кнопку отмены.

Это избавит вас от манипуляций с вашим оригинальным контроллером / навигационной панелью и улучшит удобство использования

0 голосов
/ 02 июля 2010

Кажется, что мне нужно сделать, это использовать UISearchDisplayController вместо того, чтобы кататься вручную.Мне удалось изменить образец «TableSearch» для использования разделов и заголовков разделов, и он ведет себя так, как я хочу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...