首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UISearchDisplayController与UITableViewController

UISearchDisplayController与UITableViewController
EN

Stack Overflow用户
提问于 2011-07-09 15:27:29
回答 3查看 6K关注 0票数 7

我有一个UITableViewController,其中我添加了一个UISearchBar作为使用接口生成器的tableHeaderView。然后,我在nib中添加了一个UISearchDisplayController,并设置了所有连接(delegatesearchResultsDelegatesearchContentsControllersearchResultsDataSource,都连接到UITableViewController)。然后,我在代码中实现了所有委托和数据源方法。

它就像一个魅力,除了一个奇怪的bug:有时搜索结果表视图不会滚动,我可以看到它后面的主表视图的闪光灯。我使用了searchResultsTableView,显然它是主表视图的一个子视图,我想这就是我前面描述的触摸问题背后的原因。

我犯了什么错?有可能在UITableViewControllerUISearchDisplayController一起使用吗?如果是这样,如何将其设置为不将结果表视图作为主表视图的子视图添加?

Update:我找到了这个样本,它在UITableViewController中使用UISearchDisplayController,显然搜索表视图也会被添加到主表视图中。所以现在我不认为这是我的问题。

问题是我找不到我所做的和那个样本所做的有任何实质性的区别。我只是将UISearchBar作为UITableView头添加到UITableViewController中,并在其中添加UISearchDisplayController .这就像当我试图滚动时,iOS在主表和搜索表之间出现了混淆。你有什么想法吗?

更新:添加了200代表赏金。只在你知道自己在说什么的时候才能回答。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-18 12:52:02

这是一个额外的self.tableView.scrollEnabled = YES,它在搜索数据请求完成后立即被调用。希望它能对将来有同样问题的人有所帮助。

票数 9
EN

Stack Overflow用户

发布于 2011-11-13 23:02:38

我认为您可能想尝试将UISearchDisplayController IBOutlet添加到类中,并将其连接到nib文件中的SearchdDisplayController。有趣的是,您的nib中的搜索显示控制器自动将其连接到检查器中默认的serachdisaplaycontreoller出口。

票数 1
EN

Stack Overflow用户

发布于 2011-07-12 12:39:21

搜索栏控制器使用自己的表视图,该视图是在自己的表的基础上添加的。如果将UISearchDisplayController的委托和UISearchDisplayController设置为UITableViewController,则表视图控制器必须在其委托方法中区分两个表视图。如果您不正确地这样做,这可能会导致您的错误。

换言之:

代码语言:javascript
复制
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (tableView == self.tableView) {
        return number of rows in data model;
    } else {
        perform the search query;
        return number of rows in search query;
    }
}

对于所有委托和dataSource方法,您都会执行类似的操作。

我不能百分之百确定这就是导致你的问题的原因,但是没有看到更多的来源,很难说。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6635680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档