2010-07-02 3 views
1

Я пытаюсь реализовать UISearchBar в пределах UITableView, который ведет себя так же, как на вкладке «Художники» приложения iPod.UITableView -reloadSectionIndexTitles, не вызывающий источник данных

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

- (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: 
    ... 

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

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

ответ

0

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

1

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

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

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

+0

Это очень похоже на то, как работает UISearchDisplayController, теперь я играл с образцом. – chrisbtoo