在 UITableViewController 中没有调用 cellForRowAtIndex?

Posted

技术标签:

【中文标题】在 UITableViewController 中没有调用 cellForRowAtIndex?【英文标题】:cellForRowAtIndex not being called in UITableViewController? 【发布时间】:2015-07-29 18:37:21 【问题描述】:

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

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

感谢任何帮助。

编辑:

还应补充一点,搜索方法/数据在所有视图中都是相同的。查看股票 ios 音乐应用程序如何使用搜索栏作为示例。

编辑 2:

我几乎破解了它(我想)。我已经设置了一个单例“SharingManager”,其中我有 3 个数组。现在我有 2 个视图,一个名为 ArtistsView,一个名为 SearchTableViewController。 Search 视图包含所有表方法,ArtistsView 使用以下方法与之通信:

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

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

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

【问题讨论】:

您现在有两个问题。您应该打开一个新的而不是编辑原始答案,以保持任何以前的答案相关,并且问题/答案质量高。此外,当涉及“只是不工作”的事情时,如果您显示一些代码,您将获得更好的帮助。 【参考方案1】:

我过去为解决此类问题所做的,似乎最灵活的做法是拥有它,以便当您点击搜索栏时,您的应用实际上会转换到另一个处理搜索的视图控制器和搜索结果。

    您希望使用的每个屏幕上的虚假搜索栏按钮。 点击搜索栏时,屏幕显示当前视图控制器。 将屏幕盖设置为搜索结果控制器的背景,如果您愿意,可以稍微模糊或变暗,这样就不会干扰搜索结果。 在您以前的视图控制器和新的搜索结果控制器之间转换,带有淡入淡出。

您将能够给用户一种他们从未离开过他们所在的原始屏幕的印象。

【讨论】:

以上是关于在 UITableViewController 中没有调用 cellForRowAtIndex?的主要内容,如果未能解决你的问题,请参考以下文章

在导航栏中使用 UITableViewController

在 UINavigationController 中显示 UITableViewController

在 UIPopoverController 中显示 UItableViewController

在 UITableViewController 中没有调用 viewWillAppear?

如何在 UITableViewController 中显示 MSMutableArray 数据?

没有在 UITableViewController 中调用 DidSelectRowAt