UICollectionView prepareForSegue通过手势点击UIImageView

时间:2014-02-06 10:19:50

标签: ios objective-c uicollectionview uigesturerecognizer uistoryboardsegue

我使用UICollectioView从网站上加载NBMutableArray图片并且运行良好。

现在在UIImageView上添加点击手势识别器,我会将信息传递给其他视图,例如segue标识符示例:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if([@"getImage" isEqualToString:segue.identifier]) {
        NSIndexPath *index = [self.collectionView indexPathForCell:sender];
        [[segue destinationViewController] setLinkImg:(arrayCollectionImages)[index.row][@"image"]];
    }

在MyStoryBoard中我使用了这个:

enter image description here

如果我只留下此功能,点击图片时我的应用就会崩溃。

任何人都知道如何做到这一点?

2 个答案:

答案 0 :(得分:1)

无需将Tap Gesture Recognizer添加到UIImageView。只需将CollectionCell的“触发的Segues”连接到目标ViewController即可。所以发件人将是CollectionCell * - (void)prepareForSegue:(UIStoryboardSegue )segue sender:(id)sender method。

enter image description here

答案 1 :(得分:0)

:)

显然它会崩溃。

它将在详细信息页面上搜索方法“setLinkImg”,您需要在其中显示此信息。

因此,请确保此方法在您要显示图像的详细信息页面上处于活动状态。

再次检查集合数组是否应包含任何值

因此,在您需要显示图片的详细信息页面中应该包含

代码应该在详细信息页面

- (void) setLinkImg:(id)newDetailItem
{
    if (_detailItem != newDetailItem) {
        _detailItem = newDetailItem;

        // Update the view.
        [self configureView];
    }       
}

- (void)configureView
{
    // Update the user interface for the detail item.

    if (self.detailItem) {
        your-imageview-object.image = [uiimage imagename:self.detailItem)];

      or any url should set on image view object.
    }
}

让我告知是否需要