如何在单击collectionView单元格时打开不同的视图控制器

时间:2017-05-12 19:40:28

标签: ios swift3 uicollectionviewcell

我想知道如何在我的collectionView中单击特定单元格时打开不同的viewControllers。对于这个例子,假设我有一个看起来像这样的collectionView。

enter image description here

假装没有标签只是彩色视图。现在假设我的storyboard中有3个不同的viewControllers用于每个collectionView单元格。故事板看起来像这样。

enter image description here

这是我发现自己陷入困境的地方。因此,当单击橙色单元格时,我想显示与其他单元格相同的viewController是橙色,反之亦然。我知道如何为所有单元格显示一个viewController,但不为特定单元格显示不同的viewControllers。那么我怎么能够做到这一点。非常感谢任何帮助或链接。感谢您抽出宝贵时间阅读我的问题。 :)

2 个答案:

答案 0 :(得分:2)

您需要使用不同的标识符来识别单击的单元格。或者你可以使用单元格的颜色字符串

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let cell: UITableViewCell? = tableView.cellForRow(at: indexPath)
    if (cell?.reuseIdentifier == "red") {
        // go to red
    }
    else if (cell?.reuseIdentifier == "orage") {
        // go to orange
    }

}

答案 1 :(得分:2)

您可以通过访问单元格背景的颜色属性轻松完成此操作。

override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
    let cell: UITableViewCell? = tableView.cellForRow(at: indexPath)
    if (cell?.backgroundColor == .red) {
        // go to red
    }
    else if (cell?.backgroundColor == .orange) {
        // go to orange
    }

}