在 UITableViewController 中没有调用 cellForRowAtIndex?
Posted
技术标签:
【中文标题】在 UITableViewController 中没有调用 cellForRowAtIndex?【英文标题】:cellForRowAtIndex not being called in UITableViewController? 【发布时间】:2015-07-29 18:37:21 【问题描述】:我目前在UITableViewController
的标题视图中实现了一个工作UISearchController
。我希望我的其他观点也能效仿,但有些是UICollectionViewController
s。有没有办法创建一个 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?的主要内容,如果未能解决你的问题,请参考以下文章
在 UINavigationController 中显示 UITableViewController
在 UIPopoverController 中显示 UItableViewController
在 UITableViewController 中没有调用 viewWillAppear?