【问题标题】:UICollectionViewCell NSindexpath reference positionUICollectionViewCell NSindexpath 参考位置
【发布时间】:2014-02-18 20:33:54
【问题描述】:

我如何引用特定的UICollectionViewCell,以便他们每个人都转到不同的 VC?

这是单元格的代码:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    Cell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MY_CELL" forIndexPath:indexPath];
    cell.imageView.image = [UIImage imageNamed:self.myCellImages[0]];
    UIImage *cellImage = [[UIImage alloc] init];
    cellImage = [UIImage imageNamed:[self.myCellImages objectAtIndex:indexPath.row]];
    cell.imageView.image = cellImage;
    return cell;
}

因此,这会根据我加载到数组中的图像数量显示一堆不同的单元格。

说我的数组是:

 self.myCellImages = @[@"1.jpg", @"2.jpg",.... @"20.jpg"];

我如何引用一个单独的单元格,以便它进入不同的 VC?例如,单击具有图像 1.jpg segues 的单元格进入 1VC,然后单击具有 17.jpg 的单元格进入 17VC

是不是类似于:

if (NSIndexPath *indexPath = [NSIndexPath indexPathForItem:0 inSection:0];)
{
//segue here
}

我不知道正确的语法

感谢蒂莫西,我添加了

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:indexPath
{
    NSString *storyboardId = @"main_to_VC1"; 
    [self performSegueWithIdentifier:storyboardId sender:indexPath];
}

【问题讨论】:

    标签: objective-c uicollectionview uistoryboard uicollectionviewcell nsindexpath


    【解决方案1】:

    您需要在集合视图控制器(而不是单元格)和目标控制器之间建立 segues,为每个控制器分配一个唯一的故事板 ID。

    然后在collectionView:didSelectItemAtIndexPath: 委托方法中,根据indexPath 决定要转接到哪个控制器并以编程方式启动转接:

    - (void)collectionView:collectionView didSelectItemAtIndexPath:indexPath
    {
        NSString *storyboardId = ...; // determine storyboard ID based on indexPath
        [self performSegueWithIdentifier:storyboardId sender:indexPath];
    }
    

    【讨论】:

    • 您好,蒂莫西,感谢您的帮助。我从collectionVC而不是单元格中创建了两个segues并命名了一个main_to_VC1和另一个main_to_VC2,并将它们设置为“push”。然后,我添加了collectionView didSelectItemAtIndexPath,如我的编辑顶部所述。但是,当 main_to_VC1/2 有单独的内容时,它会将视图切换到空白视图。我还需要对细胞做些什么吗?
    • 啊!我修好了它。必须这样做: (void)collectionView:(UICollectionView*)collectionView 但是,当我按下新 VC 上的后退按钮以返回主集合视图时,我必须按两次才能返回。任何想法为什么它可能会这样做?
    • 嗯,我的错……我被自己的代码弄糊涂了一秒钟。所以,它的工作原理是它连续,但我仍然对如何制作它感到困惑,以便每个单独的单元格连接到不同的 VC。由于此单元格是可重复使用的,因此它在运行时会创建 20 个(如果我的数组中有 20 个项目..)单元格。我如何让他们每个人都有自己的 VC 去继续?
    • 我不清楚你想做什么。您是否确实在情节提要中定义了多个子控制器,或者您是否有一个需要使用特定于所选单元格的数据配置的子视图控制器?
    • moose 我实际上发现了我的问题,我没有给他们正确的标识符......谢谢你的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2018-03-25
    相关资源
    最近更新 更多