单击CollectionViewCell INSIDE a UITableViewCell时如何显示视图控制器

时间:2015-02-14 19:31:56

标签: ios objective-c uitableview

我有一个自定义的UITableViewCell,它有一个带有许多collectionViewCells的CollectionView。

当我点击每个CollectionViewCell时Xcode崩溃。

此代码位于CustomTableViewCell.m文件中

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

    imageInfo.imageURL = [[NSURL alloc] initFileURLWithPath:[self.fullSizeImagePath objectAtIndex:indexPath.item]];
    imageInfo.referenceRect = self.superview.frame;
    imageInfo.referenceView = self.superview;

    // Setup view controller
    JTSImageViewController *imageViewer = [[JTSImageViewController alloc]
                                           initWithImageInfo:imageInfo
                                           mode:JTSImageViewControllerMode_Image
                                           backgroundStyle:JTSImageViewControllerBackgroundOption_Scaled];

    // Present the view controller.
    [imageViewer showFromViewController:self transition:JTSImageViewControllerTransition_FromOriginalPosition];
    imageViewer = nil;
}

showFromViewController行崩溃。

么?

2 个答案:

答案 0 :(得分:0)

您的tableviewcell似乎是collectionviews委托/数据源。这通常不是一个好主意,所以每次在table中嵌入table / collectionviews时,管理外部集合的viewcontroller应该是两者的委托/数据源。这样你的viewcontroller实现了didSelectItemAtIndexPath,并且可以呈现另一个VC

答案 1 :(得分:0)

您可以在tableViewCell中添加CollectionViewController而不是CollectionView,这样您就可以呈现模态,并且您的单元格不会直接处理数据源/委托。