在collectionView中的indexPath.row处获取UILabel.text

时间:2016-04-29 01:28:12

标签: ios swift uicollectionview

我正在尝试获取用户选择的CollectionViewCell文本。这是我目前的细胞结构。

class CategoryCell: UICollectionViewCell {

    @IBOutlet weak var categoryImage: UIImageView!
    @IBOutlet weak var categoryType: UILabel!
}

我想将此信息传递给下一个视图控制器 - 如何在selectedCell上获取UILabel.text并将其传递给下一个视图控制器?

2 个答案:

答案 0 :(得分:4)

我将根据假设指定一种方法。如果一个单元格有UILabel,那么该标签必须有一个输入,用于在cellForItemAtIndexPath中添加文本或向单元格发送值以将其添加到UILabel中。

这完全基于这个假设回答它。如果要根据索引路径为特定数据提供标签,那么在选择单元格时,请获取indexPath并从数据源中获取数据。

另一种方法是在didSelectItemAtIndexPath函数

  let cell:CategoryCell = collectionView.cellForItemAtIndexPath(indexPath)
  let labelText = cell.categoryType.text

答案 1 :(得分:3)

因此,要在视图控制器之间传递数据,可以使用prepareForSegue方法。

在viewcontroller内部:

在prepareForSegue方法中:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "yourID")
{
    let cell = sender as! UICollectionViewCell // this should be your custom cell class
    var myIndex = viewCollect.indexPathForCell(cell) // this is how you get the index if you need it

    let destination = segue.destinationViewController as! ViewController2
    destination.dateString = cell.myLabel.text // where dateString is a String variable in viewcontroller 2
 }
}
  • 因此我们从发件人对象
  • 创建一个单元格
  • 访问单元格的标签
  • 为ViewController2创建目标
  • 然后将标签的文本分配给ViewController2中的变量

过去这对我有用。如果它不起作用,请告诉我。