DidSelectItemAtIndexPath无法使用collectionview

时间:2014-11-06 00:00:04

标签: ios swift uicollectionview uicollectionviewcell

所以我一直在努力解决这个问题。我有一个UICollectionView,我用作菜单。单元格是切换到另一页面的选项。该菜单的功能完全如此,除了当你按下一个单元格,比如单元格0时,它应该弹出到下一个视图。我发现的是,细胞正在记录触摸,但当我尝试确定按下哪个细胞时,它是否会分崩离析。我试过调试它,对我来说看起来像indexPath没有价值!我正在使用didSelectItemAtIndexPath函数,不,它不是didDeselect(我已经从我的搜索中检查了如何解决这个问题)。我会发布代码,但这个真的难倒我。任何帮助将不胜感激!

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)
{
    NSLog("Pressed Cell")

    if(indexPath == 0)
    {
        self.navigationController?.popToViewController(profileViewController, animated: true)
    }

}

2 个答案:

答案 0 :(得分:1)

NSIndexPath包含一个部分和一个项目,您可以访问indexPath.itemindexPath.section。假设您只有一个部分(因此其值无关紧要),您可以将代码更改为:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)
{
    NSLog("Pressed Cell")

    if(indexPath.item == 0)
    {
        self.navigationController?.popToViewController(profileViewController, animated: true)
    }

}

答案 1 :(得分:0)

我肯定通常会调用委托方法,但是如果要在视图中添加任何手势。确保在向您查看手势识别器之前,请确保布尔属性" cancelTouchesInView"设置为false。这可能是因为手势被识别,因此它忽略了对视图的传递触摸,导致不调用单元格选择方法。链接到财产。