你好我在我的控制器中实现了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) {
}
答案 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
我希望这对你有所帮助。