Я пытаюсь сделать это:
Рассмотрим табличное представление с панелью поиска в заголовке. Представление таблицы обновляется при поиске строки.
Яс 2 классами
TableViewController (подкласс UIViewController)
содержит UITableView - показывает таблицу, чье представление заголовка
таблица загружается из класса Header (подкласс UIToolBar)
.
Header (заголовок UITableView)
-Contains UISearchBar и его делегат
UISearchBarDelegates вызывают функцию в TableViewController
, которая вызывает
- (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation
что приводит к сбою приложения
кадр стека вызовов функции выглядит следующим образом
[UITableView reloadSections:withRowAnimation:]
[TableViewController functionThatCallsReloadSection]
[Header searchBarSearchButtonClicked:]
reloadSection вызывает сбой приложения. Есть идеи, почему это происходит так?
Это потому, что функция делегата все еще активна в стеке, пока заголовок табличного представления перезагружается ??
Я не изменяю ничего, связанного с табличным представлением(без изменений в количестве строк или разделов). Все, что я пытаюсь сделать, это просто перезагрузить табличное представление.
Отредактировано: я пытаюсь делать все эти вещи в iPad, который обеспечивает всплывающее окно во времяиспользуя UISearchDisplayController, который я не хочу использовать. У меня уже есть табличное представление, которое я хочу обновить после ввода текста и нажатия кнопки поиска, используя делегат поиска.Единственная проблема состоит в том, что, как только я вызываю [UITableView reloadSection:] в поисковом делегате UISearchBar (UISearchBar находится в заголовке UITableView, который я хочу перезагрузить), приложение вылетает.