如何制作表格视图的多个实例?

Posted

技术标签:

【中文标题】如何制作表格视图的多个实例?【英文标题】:How to make multiple instances of a tableview? 【发布时间】:2016-02-26 12:37:01 【问题描述】:

我有一个图像的collectionView,因此当单击图像时会显示一个tableview。我的 tableview 显示从我的解析服务器查询的帖子,但是当我返回我的集合视图并单击不同的图像时,我被带到显示相同数据的视图控制器。

我正在尝试让每个 collectionview 图像的表格视图来查询其自己独特的帖子集。

如何为每个集合视图图像创建单独的 tableview 实例?

我在集合视图的 didSelectItemAtIndexPath 中的代码:

    override func collectionView(collectionView: UICollectionView,didSelectItemAtIndexPath indexPath: NSIndexPath) 

    collectionView.allowsMultipleSelection = false

     // navigate to preference view
    let post = self.storyboard?.instantiateViewControllerWithIdentifier("myTableView") as! myTableView
    self.navigationController?.pushViewController(post, animated: true)

【问题讨论】:

【参考方案1】:

在您的didSelectItemAtIndexPath 实现中,您从不使用indexPath 参数。这只是意味着您的代码不关心选择了哪个单元格,并且您将始终拥有相同的视图控制器并提供相同的数据。

为了让它工作,在didSelectItemAtIndexPath方法中,保持对indexPath的引用被选中,甚至在对应于这个索引路径的数据中(你在cellForItemAtIndexPath中实际使用的数据)。

然后,在包含 collectionView 的视图控制器中,覆盖 prepareForSegue 并使用它在推送数据之前将数据与 tableview 一起传递给 ViewController。 更多信息来自UIViewController Class Reference。

【讨论】:

【参考方案2】:

您应该在“myTableView”中有一个变量,并在“pushViewController”之前给它一个值。类似的东西:

override func collectionView(collectionView: UICollectionView,didSelectItemAtIndexPath indexPath: NSIndexPath) 

collectionView.allowsMultipleSelection = false
//GET CLICKED
var YOUROBJECT = YOURARRAYOFIMAGES.objectAtIndex(indexPath.row)
 // navigate to preference view
let postView = self.storyboard?.instantiateViewControllerWithIdentifier("myTableView") as! myTableView
postView.post = YOUROBJECT.post
self.navigationController?.pushViewController(postView, animated: true)

【讨论】:

以上是关于如何制作表格视图的多个实例?的主要内容,如果未能解决你的问题,请参考以下文章

管理同一视图控制器的多个实例

如何跨多个视图控制器引用同一个类的实例?

如何在一行代码中将多个子视图添加到我的 iOS 视图中? (也许通过“monkeypatching”一个 `addSubviews` 实例方法到 UIView?)

为视图创建多个 QSortFilterProxyModel 实例

如何在python中命名和创建类的多个实例?

laravel 中多个 VUEjs 实例