在UITableViewController中没有调用cellForRowAtIndex?

时间:2015-07-29 18:37:22

标签: ios swift uitableview uicollectionview uisearchcontroller

我目前在UISearchController的标题视图中实现了一个有效的UITableViewController。我希望我的其他观点也效仿,但有些观点是UICollectionViewController。有没有办法创建一个UISearchController并在标题中的所有视图中调用它们?所有结果必须显示在表格中。

我曾尝试为每个视图创建一个,但UICollectionViewController给了我一些问题。我无法弄清楚如何为搜索控制器设置和更新表。它不允许我覆盖tableView方法,因为我猜控制器是CollectionView

感谢任何帮助。

编辑:

还应该补充说,所有视图中的搜索方法/数据都是相同的。了解iOS音乐应用如何使用搜索栏作为示例。

编辑2:

我几乎破解了它(我认为)。我已经设置了一个单独的“SharingManager”,在这里我有3个阵列。现在我有2个视图,一个名为ArtistsView,另一个名为SearchTableViewController。 “搜索”视图包含所有表格方法,ArtistsView使用以下方式与其进行通信:

  

self.searchResultsController = UISearchController(searchResultsController:SearchTableViewController())

我还将单例内的变量复制到SearchTableViewController中的变量。

我现在遇到的问题是没有调用cellForRowAtIndexItem方法。所有其他的,我甚至可以看到部分标题正在显示。我已经设置了各种println()语句来查看我可能出错的地方,numberOfRowsInSection也返回正确的数字。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我过去曾经做过什么来解决这类问题,而且最灵活的是拥有它以便当您点击搜索栏时,您的应用实际上会转换到另一个处理搜索的视图控制器和搜索结果。

  1. 您希望使用的每个屏幕上的假搜索栏按钮。
  2. 点按搜索栏时,屏幕显示当前视图控制器。
  3. 将屏幕截图设置为搜索结果控制器的背景,如果您愿意,可以模糊或变暗,这样就不会干扰搜索结果。
  4. 您之前的视图控制器与新搜索结果控制器之间的转换。
  5. 您将能够给用户留下他们从未离开原始屏幕的印象。