是不是可以将UISearchBar放在UITableView标头中?

时间:2012-03-12 19:11:49

标签: uisearchbar reloaddata uitableview uisearchbardelegate

我正在努力实现这一目标:

  

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

我有两节课

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导致App崩溃。任何想法为什么会这样发生?

  

是否因为委托函数在堆栈上仍处于活动状态   而表视图头重新加载??

我没有改变任何与tableview相关的事情(行数或部分数没有变化)。我想做的就是重新加载表视图。

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

1 个答案:

答案 0 :(得分:1)

我能够通过使用tableViewHeader而不是使用表视图头委托方法loadind表视图头来解决问题,其中我使用了一个初始化为表视图头的指针。