8

我正在努力做到这一点:

考虑一个在其标题上带有搜索栏的表格视图。每当搜索字符串时,表格视图都会刷新。

我有 2 节课

TableViewController(UIViewController 子类)

包含 UITableView - 显示其表

表格的标题视图是从 Header 类(UIToolBar 子类)加载的

.

标头(UITableView 的标头)
- 包含UISearchBar 及其委托

UISearchBarDelegates 回调 TableViewController 中的一个函数

那叫

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

导致App崩溃

函数调用栈帧如下

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

reloadSection 导致应用程序崩溃。任何想法为什么会这样?

是因为在重新加载表视图标题时委托函数在堆栈上仍然处于活动状态吗?

我没有更改与 tableview 相关的任何内容(行数或节数没有变化)。我要做的只是重新加载 table view。

编辑:我正在尝试在 iPad 中做所有这些事情,它在使用我不想使用的 UISearchDisplayController 时提供了一个弹出窗口。我已经有一个表格视图,一旦输入文本并点击搜索按钮,我想刷新它,使用搜索委托。唯一的问题是,一旦我在 UISearchBar 的搜索委托中调用 [UITableView reloadSection:](UISearchBar 位于我要重新加载的 UITableView 的标题上),应用程序就会崩溃。

4

1 回答 1

1

我能够通过使用 tableViewHeader 而不是使用 table view header 委托方法加载 table view header 来解决问题,其中我使用了一个初始化为 table view header 的指针。

于 2012-03-22T10:36:36.080 回答