UISearchDisplayController 取消按钮不刷新标题和索引

发布于 2024-10-17 13:17:26 字数 574 浏览 2 评论 0原文

我有一个表视图,其中包含一长串字符串。每个部分都有标题、右侧的索引和搜索按钮。 这是使用 UISearchDisplayController 以编程方式实现的(即不在 IB 中)。

激活搜索按钮时,我通过询问
隐藏标题(在 titleForHeaderInSection 中),并隐藏索引(在 sectionIndexTitlesForTableView 中) if ([self.searchDisplayController isActive])

问题是,当单击取消按钮时,标题和索引首先保持隐藏状态。我尝试(在 searchBarCancelButtonClicked 中)调用 [self.tableView reloadData],但这不起作用。

我的 viewWillAppear 中有一个 [self.tableView reloadData],它以一种方式提供帮助:如果我选择一行,将另一个视图推入堆栈,然后返回对于该表,标题和索引都按需要存在。

我可能做错了什么?

I have a table view, with a long list of strings. There are headers for each section, an index along the right hand side, and a search button.
This has been implemented programmatically, using a UISearchDisplayController, (i.e. not in IB).

When the search button is activated, I hide the headers (in titleForHeaderInSection), and hide the index (in sectionIndexTitlesForTableView), by asking
if ([self.searchDisplayController isActive])

The problem is, when the cancel button is clicked, the headers and index remain hidden, at first. I tried (in searchBarCancelButtonClicked) to call [self.tableView reloadData], but that doesn't work.

I have a [self.tableView reloadData] in my viewWillAppear, which helps in one way: if I select a row, push another view onto the stack, and then go back to this table, the headers and index are there as wanted.

What might I be doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冰葑 2024-10-24 13:17:26

我发现有时,当 [tableView reloadData] 不起作用时,这样做会:

[tableView performSelector:@selector(reloadData) withObject:nil afterDelay:0];

无论出于何种原因,有时表视图会进入这样一种状态,即它必须等到运行循环的下一次迭代才能重新加载。要有效果。

I've found that sometimes, when [tableView reloadData] doesn't work, doing this will:

[tableView performSelector:@selector(reloadData) withObject:nil afterDelay:0];

For whatever reason, sometimes the table view gets into such a state that it must wait until the next iteration through the run loop before the reload will be effective.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文