自定义tableview单元格传递对象

时间:2015-07-09 17:48:06

标签: ios objective-c uitableview uicollectionviewcell

我有一个自定义的tableview类,我希望在单击图像时传递两个属性:

在我的" MJCustomTableViewCell.h"

@property NSString *username;
@property UIImage *selectedImage;

我想传递上述属性。我目前在我的代码中有这个,但它不起作用,它只显示一个空白视图控制器。

在我的MJCustomTableViewCell.m

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    DetailViewController *vc = [[DetailViewController alloc]init];

    ImageHelper *imageHelper = [self.imageDataArray objectAtIndex:indexPath.row];
    NSURL *url = [NSURL URLWithString:imageHelper.standardPhotoURL];
    NSData *data = [[NSData alloc]initWithContentsOfURL:url];
    vc.selectedImage = [UIImage imageWithData:data];
    vc.username = imageHelper.username;


}

它将它推送到一个空的视图控制器..但它显示一个空白页面..我也在我的MJCustomTableViewCell.m文件中有这个

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    CustomCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"collectionViewCellIdentifier" forIndexPath:indexPath];
    ImageHelper *imageHelper = [self.imageDataArray objectAtIndex:indexPath.row];
    NSURL *url = [NSURL URLWithString:imageHelper.standardPhotoURL];
    NSData *data = [[NSData alloc]initWithContentsOfURL:url];
    self.selectedImage = [UIImage imageWithData:data];
    self.username = imageHelper.username;
    cell.imageView.image = self.selectedImage;

    return cell;
}

我觉得我的代码很重复。任何建议将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

您确定您的详细视图控制器已设置为显示您传递的数据吗?例如,您是否将imageView作为子视图添加到detailViewController的视图中,该视图将保存selectedImage,您在vc上将其设置为selectedImage属性?

关于为什么点击图像可能会推送到空视图控制器,因为你没有在collectionView:didSelectItemAtIndexPath委托方法中调用pushViewController:animated,我想你可能想检查你的表视图委托。您可能正在推送到tableView:didSelectRowAtIndexPath方法中的空视图控制器。