我正在尝试获取用户选择的CollectionViewCell文本。这是我目前的细胞结构。
class CategoryCell: UICollectionViewCell {
@IBOutlet weak var categoryImage: UIImageView!
@IBOutlet weak var categoryType: UILabel!
}
我想将此信息传递给下一个视图控制器 - 如何在selectedCell上获取UILabel.text并将其传递给下一个视图控制器?
答案 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
}
}
过去这对我有用。如果它不起作用,请告诉我。