2014-11-06 97 views
0

所以我一直在为此挣扎了一段时间。我有一个UICollectionView,我用它作为菜单。单元格是切换到另一页面的选项。菜单的功能应该如何,除了按下单元格(比如单元格0)时,它应该会弹出到下一个视图。我发现的是,单元格正在注册触摸,但是当我尝试并确定哪个单元格被按下时是分开的。我试过调试它,对我来说它看起来像indexPath没有价值!我正在使用didSelectItemAtIndexPath函数,不,它不是didDeselect(我已经从我的搜索中检查了如何解决这个问题)。我将发布代码,但是这个代码真的让我难住了。任何帮助将不胜感激!DidSelectItemAtIndexPath不能与collectionview一起使用

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

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

} 

回答

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) 
    } 

} 
+0

谢谢在调试过程中,它进入了if语句。现在我只需要让另一个视图弹出即可。目前,当您按下单元格时它仍然没有任何操作,但可能与此问题无关。 – SamG 2014-11-06 00:13:59

0

我肯定正常调用委托方法,但如果有任何手势添加到视图。确保在向视图添加手势识别器之前,确保将布尔属性“cancelTouchesInView”设置为false。这可能是因为手势被识别,所以它忽略了传递给视图的触摸,导致单元格选择方法不被调用。链接到财产。

+0

这是一个古老的线程,但遗憾的是接受的答案是正确的。我没有意识到indexPath有一个部分和一个项目访问方法,如indexPath.row和indexPath.section。 – SamG 2015-11-18 15:54:33

相关问题