将自定义视图单元格移植到自定义视图控制器

时间:2016-03-03 23:55:24

标签: xcode swift

我使用集合视图来显示自定义集合视图单元格的网格,以表示类别图标,这些图标将用作按钮以切换到表格视图控制器以显示类别列表。我正在使用一系列"产品" (标签)和"图像" (产品图像)根据原型显示多个自定义单元格

  func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {



    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! CollectionViewCell

    cell.imageView?.image = self.images[indexPath.row]

    cell.labelView?.text = self.products[indexPath.row]

    return cell
}

如何将我的主页视图控制器转换为单个自定义表视图控制器,以根据选择的图标显示不同的类别列表?非常感谢任何帮助,仍然习惯于xcode和swift

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您可以使用相同的子UITableViewController,并根据所选的单元格传递不同的数据。

首先在CollectionViewController工具

if !user.status_id.nil?
  ...
end

然后用数据执行segue

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

答案 1 :(得分:0)

首先,您的视图控制器必须符合UICollectionViewDelegate,然后您必须实现此委托方法以在选择单元格时执行segue:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
    performSegueWithIdentifier("identifier", sender: nil)
}

然后检查segue标识符是否匹配,获取所选单元格的indexPath,构建所选产品和图像的元组,最后将其传递到目的地tableViewController

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "identifier" {
        let indexPath = collectionView.indexPathsForSelectedItems()!.first!
        let selectedProduct = (product: products[indexPath.row], image: images[indexPath.row])
        let controller = segue.destinationViewController as! YourTableViewController
        controller.product = selectedProduct
    }
}