在 UICollectionViewController 中按下 UICollectionView 后没有响应

Posted

技术标签:

【中文标题】在 UICollectionViewController 中按下 UICollectionView 后没有响应【英文标题】:No responed after pressing UICollectionViewCell in the UICollectionViewController 【发布时间】:2015-10-11 11:16:12 【问题描述】:

当我将图像从 UICollectionViewController 发送到另一个 ViewController 时,这里是 View A:

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

  if ([segue.identifier isEqualToString:@"Detail Segue"])
     
        PhotoDetailViewController *PhotoDetailVC = segue.destinationViewController;
        NSIndexPath *path = [[self.collectionView indexPathsForSelectedItems]  lastObject];

        Photo *selectedPhoto = self.photos[path.row];
        PhotoDetailVC.photo = selectedPhoto;
    

我在 ViewController(视图 B)中使用:

-(void)viewWillAppear:(BOOL)animated

    [super viewWillAppear:animated];
    self.imageView.image= self.photo.image;

【问题讨论】:

到底是什么问题?什么是预期的,但没有奏效? 当我按下 UICollectionViewCell 时,应用程序没有响应,它应该与 View B @Mahmoud Adam 那么你在哪里执行你的segue?您是否配置了集合视图的委托?你能在collectionView:didSelectItemAtIndexPath:方法中显示你的代码吗 我在 UIcollectionViewController(视图 A)中执行我的 segue 我不使用 'collectionView:didSelectItemAtIndexPath:' 方法 @Mahmoud Adam 您可以编辑帖子并添加此代码,因为它可能有问题 【参考方案1】:

我认为问题在于您没有在代码中实际负责触发导航的任何地方调用 performSegueWithIdentifier:sender: 而不是在准备导航时调用的 prepareForSegue:sender:

所以我建议如下实现collectionView:didSelectItemAtIndexPath:

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 
    Photo *selectedPhoto = self.photos[path.row];
    // this line is the one that is responsible for navigation
    [self performSegueWithIdentifier:@"Detail Segue" sender:selectedPhoto];

并修改prepareForSegue:sender:如下

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
  if ([segue.identifier isEqualToString:@"Detail Segue"]) 
        PhotoDetailViewController *PhotoDetailVC = segue.destinationViewController;
        PhotoDetailVC.photo = sender;
    

【讨论】:

谢谢它的工作,但我是 ios 的初学者,请建议我任何资源......?

以上是关于在 UICollectionViewController 中按下 UICollectionView 后没有响应的主要内容,如果未能解决你的问题,请参考以下文章

NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2游记

秋的潇洒在啥?在啥在啥?

上传的数据在云端的怎么查看,保存在啥位置?

在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?

存储在 plist 中的数据在模拟器中有效,但在设备中无效

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据