Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UITableView普通样式节标题在搜索视图上被重绘_Iphone_Objective C - Fatal编程技术网

Iphone UITableView普通样式节标题在搜索视图上被重绘

Iphone UITableView普通样式节标题在搜索视图上被重绘,iphone,objective-c,Iphone,Objective C,当tableView位于搜索栏显示控制器的后台时,是否有人成功地重新加载了tableView?看看照片,看看发生了什么 我有一个带搜索显示控制器的UITableViewController。当我在显示搜索显示控制器的表视图时调用UITableViewController的tableview上的reloadData时,UITableViewController中的剖面视图标题将被绘制到搜索显示控制器的视图上 下面是一个快照,显示了search display controller视图顶部的部分标题

当tableView位于搜索栏显示控制器的后台时,是否有人成功地重新加载了tableView?看看照片,看看发生了什么

我有一个带搜索显示控制器的UITableViewController。当我在显示搜索显示控制器的表视图时调用UITableViewController的tableview上的reloadData时,UITableViewController中的剖面视图标题将被绘制到搜索显示控制器的视图上

下面是一个快照,显示了search display controller视图顶部的部分标题视图:

更新:我将代码简化为一个简单的搜索显示控制器和UITableView。如果在搜索栏处于活动状态时在tableView上重新加载数据。这个问题仍然存在


使用NSLog尝试检查UITableView中的剖面视图标题何时准确绘制。
也许你可以弄清楚为什么会发生这种情况。然后尝试使用scrollEnabled=NO,正如您所想。

您可以使用简单的UISearchBar,因为如果不查看您的代码,将无法帮助您。

我希望您知道,您需要两个
UITableView
才能使用搜索栏。当搜索处于活动状态时,您应该管理和显示搜索结果表,否则将显示原始搜索结果表

从苹果的文档中:
结果显示在搜索显示控制器创建的表格视图中。

因此,您不应该重新加载原始的
UITableView
,而应该确保搜索结果表的
数据源是正确的

UISearchDisplayController
有一个名为
searchResultsTableView
的属性,您不必专门用
reloadData
重新加载该属性。相反,它将通过
UISearchDisplayDelegate
协议中的方法进行更新,例如
searchDisplayController:shouldrelLoadTableforSearchString:

干杯,

萨沙我遇到了这个问题。如果您的案例与我的类似,则原因是[self.tableView reloadData]重新绘制self.tableView标题,即使self.tableView位于searchResultsTableView之下

[self.tableView reloadData]在1)从表视图数据源提取时被调用,2)在fetchedResultsController的setter中被调用

此外,如果tableView控制器是fetchedResultsController的委托,则每当核心数据管理文档发生更改时,它都会接收更新。这也导致标题被重新绘制


解决方案:我在填充搜索结果时删除了[self.tableView reloadData]。此外,我还删除了作为fetchedResultsController委托的tableview控制器。

nope..即使在我从等式中删除了滚动启用之后。.当搜索视图处于活动状态时,重新加载的节标题视图将加载到搜索视图的顶部。@titaniumdecoy…添加了一个图像。不确定你以前是否看到过这一点?试着阅读一下如何将它们一起实现,你显然错过了一个提示:@Marek..我用interface builder将其减少到最低限度…我只是在搜索控制器激活后重新加载数据,以引起问题。请告诉我这个。为什么有两种不同的桌面视图?@legolas。搜索显示控制器保存我的搜索结果。普通表视图包含基于地理位置的结果列表。搜索控制器拥有自己的搜索引擎是标准的tableView@sascha,我的另一个tableView与搜索控制器tableView非常独立。它的重新加载基于网络请求的完成,因此在搜索显示控制器处于活动状态时可能会发生。如果您查看屏幕截图,您会注意到search controller代理的tableview没有打开…屏幕只是变黑了。因此,我认为我的问题实际上是搜索控制器处于活动状态,而下面的tableview被重新加载。谢谢