如何将变量放在UICollectionView上并通过函数获取

时间:2016-02-01 10:16:03

标签: ios xcode swift variables cell

我需要帮助将变量放在UICollectionView单元格上,稍后通过ViewController.swift中的函数获取 我尝试这段代码,但在cell.idyoutube.text

中遇到问题变量
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

    if (collectionView == self.collectionView1)
    {
        var cell : FeaturedCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier(self.reuseIdentifierFeatured, forIndexPath: indexPath) as! FeaturedCollectionViewCell

        var imageFilename: UIImage!


        let imgURL: NSURL = NSURL(string: "http://www.mywebsite/images/imagestvos/feature-\(indexPath.row).jpg")!
        let request: NSURLRequest = NSURLRequest(URL: imgURL)


                    imageFilename = UIImage(data: data!)!
                    cell.featuredImage.image = UIImage(data: data!)!
                    cell.idyoutube.text = "Rqr3w8scm2E"
     }


        task.resume()

        return cell
    }

    return UICollectionViewCell()

}

并且在这里,这是通过点击激活的功能,但是有问题可以获得idyoutube.tex变量。

    func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
    let cell : FeaturedCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier(self.reuseIdentifierFeatured, forIndexPath: indexPath) as! FeaturedCollectionViewCell
    let mylink = cell.idyoutube.text
}

我不知道是否要访问idyoutube我会去:let cell : FeaturedCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier(self.reuseIdentifierFeatured, forIndexPath: indexPath) as! FeaturedCollectionViewCell

1 个答案:

答案 0 :(得分:0)

您不应在-dequeueReusableCellWithReuseIdentifier调用中使用didSelectItemAtIndexPath方法,因为此调用实际上是尝试从单元格池中获取空闲单元格而不代表您正在点击的单元格。

您需要使用索引路径进行-[UICollectionView cellForItemAtIndexPath:]调用,并传递给-didSelectItemAtIndexPath:方法。 在返回的单元格中,您将找到存储的idyoutube.text属性。