2012-03-12 2 views
8

Я пытаюсь сделать это:Невозможно поместить UISearchBar в заголовок UITableView?

Рассмотрим вид таблицы с панели поиска на его header.Table зрения получает обновляется всякий раз, когда ищется строка.

Я имею 2 класса

TableViewController (UIViewController подкласс)

содержит UITableView -Вот показывает таблицу,

вид заголовка таблицы загружается из класс заголовка (подкласс UIToolBar)

.

Заголовок (заголовок UITableView)
-contains UISearchBar и его представитель

В

UISearchBarDelegates перезвонит функцию в TableViewController

, который вызывает

- (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation 

, которая вызывает приложение к сбою

вызов функции стека кадров выглядит следующим образом

[UITableView reloadSections:withRowAnimation:] 
[TableViewController functionThatCallsReloadSection] 
[Header searchBarSearchButtonClicked:] 

reloadSection вызывает приложение к краху идеи .any, почему его происходит так?

Это потому, что функция делегата по-прежнему активна в стеке , пока заголовок заголовка таблицы перезагружается ??

Я не меняю ничего, связанного с табличным представлением (без изменения количества строк или разделов). Все, что я пытаюсь сделать, это просто перезагрузить представление таблицы.

Отредактировано:Я пытаюсь сделать все это в iPad, который предоставляет popover при использовании UISearchDisplayController, который я не хочу использовать. У меня уже есть представление таблицы, которое я хочу обновить после ввода текста и поиска нажата кнопка, используя делегат поиска. Единственная проблема заключается в том, что как только я вызываю [UITableView reloadSection:] в делегат поиска UISearchBar (UISearchBar находится в заголовке UITableView, который я хочу перезагрузить), приложение аварийно завершает работу.

+0

Должен ли я реализовать панель поиска в качестве другой панели инструментов, а не как заголовок таблицы? – prajul

+0

в случае сбоя приложения dosent, если я выполню reloadData, а не раздел перезагрузки, приложение выйдет из строя, когда оно встретится с reloadSection для той же таблицы, где в коде – prajul

ответ

1

Я смог устранить проблему, используя tableViewHeader вместо того, чтобы загружать заголовок таблицы, используя метод делегата заголовка таблицы, где я использовал указатель, который инициализирован заголовком представления таблицы.

Смежные вопросы