我有一个表视图,有很长的字符串列表。每个部分都有标题,右侧有一个索引,还有一个搜索按钮。 这是使用UISearchDisplayController以编程方式实现的(即不在IB中)。
当搜索按钮被激活时,我隐藏标题(在titleForHeaderInSection
中),并隐藏索引(在sectionIndexTitlesForTableView
中),请求
if ([self.searchDisplayController isActive])
问题是,当单击取消按钮时,标题和索引首先保持隐藏状态。我尝试(在searchBarCancelButtonClicked
中)致电[self.tableView reloadData]
,但这不起作用。
我的[self.tableView reloadData]
中有一个viewWillAppear
,这有一个方面的帮助:如果我选择一行,将另一个视图推送到堆栈,然后返回到此表,标题和索引是否有所需。
我可能做错了什么?
答案 0 :(得分:0)
我发现有时,当[tableView reloadData]不起作用时,这样做会:
[tableView performSelector:@selector(reloadData) withObject:nil afterDelay:0];
无论出于何种原因,有时表视图会进入这样一种状态:它必须等到下一次迭代通过运行循环才能重新加载。