如何制作表格视图的多个实例?
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?)