2014-11-06 24 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

相關問題