感谢您阅读我的问题。我有一个有趣的问题,无法解决,希望社区能够提供帮助。我有一个UITableViewController(LibraryViewController),它具有UISearchDisplayController作为变量。我还有另外两个对象。首先,NSObject的子类定义了我的数据对象(两个NSString对象),称为LibraryDataObject。第二个是NSObject的子类,它具有两个NSMutableArray对象,并实现了称为LibraryDataModel的UITableViewDataSource协议。

LibraryViewController还拥有一个名为libraryDataSource的LibraryDataModel实例。已正确初始化。同样,LibraryViewController和UISearchDisplayController的委托设置为LibraryDataModel。未搜索的视图正确填充。而且,当我搜索时,列表会根据搜索词填充正确的项目。该代码基于TableSearch文档代码。

这是我的问题显而易见的地方。搜索时,表格将简化为搜索框中的术语。但是,当我滚动表格并移动到搜索词的范围之外时,它将开始使用基本tableView:cellForRowAtIndexPath:的表格视图发送消息UITableViewController

有人遇到过这种特殊情况吗?谢谢。

最佳答案

我向苹果公司开了一个案子,他们帮助了我。该行为不是我想要的,但是它解释了此问题。我通过使用[self.parentViewController.view addSubview:searchBar]将其推入堆栈来添加搜索栏。但是,我应该使用self.tableView.tableHeaderView = searchBar;添加搜索栏。这个问题消失了,但是搜索栏位于表视图的顶部,并且在视图上不是静态的。看看是否可以修改。

08-07 17:23