如何从集合视图中单击的单元格中获取信息

时间:2016-02-10 20:53:41

标签: ios swift uicollectionview uicollectionviewcell

你好我在我的控制器中实现了UICollectionView。我在每个单元格上显示的信息很多。当用户单击特定单元格时,我想将单元格中的所有信息传递给另一个控制器。

因为我在单元格中显示来自db的所有数据并且单元格是动态生成的,所以我认为一种方法是将一个单元格中的记录ID传递给此函数didSelectItemAtIndexPath然后再传递给第二个控制器我再次从数据库中查询。但我认为这不是好主意。而且我也不知道如何在此函数didSelectItemAtIndexPath中传递id或任何信息。

所以简而言之,我想显示正在点击的那个单元格中显示的另一个控制器中的所有信息

这是我的代码

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

            let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell",
                forIndexPath: indexPath) as! CardsCollectionCell
            cell.usernameLabel.text = (((dict["\(indexPath.item)"] as?NSDictionary)!["Trip"] as?NSDictionary)!["userName"] as?NSString)! as String
            cell.feeLabel.text = (((dict["\(indexPath.item)"] as?NSDictionary)!["Trip"] as?NSDictionary)!["fee"] as?NSString)! as String

             return cell
    }

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

      }

1 个答案:

答案 0 :(得分:1)

因此,让我们按部分说明,didSelectItemAtIndexPath委托方法用于了解UICollectionViewCell中点击的UICollectionViewController,您可以获得{{1}很容易使用方法UICollectionViewCell(它与cellForItemAtIndexPath不同),如下面的代码所示:

collectionView(collectionView: UICollectionView, cellForItemAtIndexPath

因此,关于 ,我希望显示正在点击的单元格中显示的另一个控制器中的所有信息

您可以毫无问题地使用func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { let cell = self.collectionView?.cellForItemAtIndexPath(indexPath) as! CardsCollectionCell // access to any property inside the cell you have. // cell.usernameLabel.text } 方法使用方法didSelectItemAtIndexPath向另一个performSegueWithIdentifier启动手动segue,并在UIViewController传递您需要的任何数据传递到另一个prepareForSegue。请参阅以下代码:

UIViewController

我希望这对你有所帮助。