将数据从ViewController传递到表格单元格内的集合单元格

时间:2017-01-14 04:37:26

标签: ios swift3

这可能有点令人困惑,但我有一个视图控制器,其中包含一个包含自定义表格单元格的表视图,在此表格单元格中,我有一个collectionView,每个单元格都包含一个图像。我正在尝试使用下面的userToView变量配置我的collectionCell图像。

下面的委托函数是表格单元格的配置位置:

OtherUserAccountViewController.swift

class OtherUserAccountViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    var userToView = User() 

...

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell:OtherUserPhotosTableViewCell = self.tableView.dequeueReusableCell(withIdentifier: photosCellReuseIdentifier) as! OtherUserPhotosTableViewCell
        cell.selectionStyle = .none

        return cell
    }
...

}

下面的委托功能是设置此图像的位置:

OtherUserPhotosTableViewCell.swift

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "otherUserPhotosCollectionCell", for: indexPath) as! OtherUserPhotosCollectionViewCell
    //Configure cell with photo from parent ViewController
    return cell
}

我的自定义CollectionViewCell可以在下面看到:

OtherUserPhotosCollectionViewCell.swift

class OtherUserPhotosCollectionViewCell: UICollectionViewCell {

    @IBOutlet weak var imageView: UIImageView!
}

我真的已经习惯了Swift&过去几周iOS开发,所以任何帮助都非常感谢。谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

通过假设您已经可以使用UIImage来回答

假设您有一个UICollectionViewCell

OtherUserPhotosTableViewCell.swift

var photoFromTableView: UIImage?    

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "otherUserPhotosCollectionCell", for: indexPath) as! OtherUserPhotosCollectionViewCell
    //Configure cell with photo from parent ViewController
    if let photo:UIImage = photoFromTableView {
        cell.imageView.image = photo
    }
    return cell
}

OtherUserAccountViewController.swift

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell:OtherUserPhotosTableViewCell = self.tableView.dequeueReusableCell(withIdentifier: photosCellReuseIdentifier) as! OtherUserPhotosTableViewCell
    cell.selectionStyle = .none
    cell.photoFromTableView = //Image you want to pass
    return cell
}

假设您有多个UICollectionViewCells

OtherUserPhotosTableViewCell.swift

var photosArray: [UIImage]?    

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "otherUserPhotosCollectionCell", for: indexPath) as! OtherUserPhotosCollectionViewCell
    //Configure cell with photo from parent ViewController
    if let photo_array:[UIImage] = photosArray {
        cell.imageView.image = photo_array[IndexPath.row]
    }
    return cell
}

OtherUserAccountViewController.swift

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell:OtherUserPhotosTableViewCell = self.tableView.dequeueReusableCell(withIdentifier: photosCellReuseIdentifier) as! OtherUserPhotosTableViewCell
    cell.selectionStyle = .none
    cell.photosArray = //Array of Images you want to pass
    return cell
}