首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UICollectionView prepareForSegue indexPathForCell is nil iOS 9

UICollectionView是iOS开发中用于展示多个可滚动的视图项的控件,类似于UITableView。它可以用于创建各种复杂的布局,包括网格、瀑布流等。

prepareForSegue是一个UIViewController的方法,用于在视图控制器之间进行页面跳转时进行准备工作。它在跳转之前被调用,可以用来传递数据或执行其他必要的操作。

indexPathForCell是UICollectionViewCell的方法,用于获取指定单元格的索引路径。它可以通过传入一个UICollectionViewCell实例来获取该单元格在集合视图中的位置。

在iOS 9中,如果在prepareForSegue方法中使用indexPathForCell方法获取单元格的索引路径,有时会返回nil。这可能是由于在调用prepareForSegue方法时,集合视图尚未完成布局和渲染导致的。

为了解决这个问题,可以尝试在调用indexPathForCell方法之前,先调用集合视图的layoutIfNeeded方法来确保布局已完成。代码示例如下:

代码语言:swift
复制
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    collectionView.layoutIfNeeded()
    
    if let cell = sender as? UICollectionViewCell {
        if let indexPath = collectionView.indexPathForCell(cell) {
            // 执行其他操作或传递数据
        }
    }
}

这样做可以确保在调用indexPathForCell方法时,集合视图已经完成了布局和渲染,从而避免返回nil的情况。

在腾讯云的产品中,与UICollectionView相关的产品包括云存储 COS(对象存储服务)和云点播 VOD(视频点播服务)。云存储 COS可以用来存储和管理多媒体文件,而云点播 VOD可以用来上传、转码和播放视频文件。您可以通过以下链接了解更多关于腾讯云存储 COS和云点播 VOD的信息:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS流布局UICollectionView系列一——初识与简单使用UICollectionView

iOS流布局UICollectionView系列一——初识与简单使用UICollectionView 一、简介         UICollectionView是iOS6之后引入的一个新的UI控件,它和...(6_0); 我们可以分析:因为UICollectionView是iOS6.0之前的新类,因此这里统一了从复用池中获取cell的方法,没有再提供可以返回nil的方式,并且在UICollectionView...*)visibleCells; //获取所有可见cell的位置数组 - (NSArray *)indexPathsForVisibleItems; //下面三个方法是iOS9... NS_AVAILABLE_IOS(9_0); - (NSArray *)indexPathsForVisibleSupplementaryElementsOfKind:(...NSString *)elementKind NS_AVAILABLE_IOS(9_0); //使视图滑动到某一位置,可以带动画效果 - (void)scrollToItemAtIndexPath:(

3.1K20
  • iOS自定义的emoji表情键盘 原

    iOS自定义的表情键盘 一、关于emoji表情         随着iOS系统版本的升级,对原生emoji表情的支持也越来越丰富。...二、开发表情键盘的思路         首先为了实现跨平台,无论iOS端,andorid端还是web端,都要有一个相同的标准,这个标准就可以是国际Unicode编码,我们的思路是将表情文字进行unicode...iOS中可用的表情unicode范围是:0xE001~0xE05A,0xE101~0xE15A, 0xE201~0xE253,0xE401~0xE44C,0xE501~0xE537。         ... *inputView;    - (void)reloadInputViews; inputView我们可以设置textView和textField成为第一响应时的弹出附件,如果我们不设置或者设置为nil...bgView;         [_textView reloadInputViews];     }else{         isEmoji=NO;         _textView.inputView=nil

    3K10

    iOS开发--一步步教你彻底学会『iOS应用间相互跳转』

    ,教你彻底学会『iOS应用间相互跳转』问题。...应用间相互跳转简介 在iOS开发的过程中,我们经常会遇到需要从一个应用程序A跳转到另一个应用程序B的场景。这就需要我们掌握iOS应用程序之间的相互跳转知识。...[UIApplication sharedApplication] openURL:appBUrl]; } else { NSLog(@"没有安装"); } } 如果是iOS9...如果是iOS9之后的模拟器或是真机,那么则需要再在应用程序App-A中将App-B的URL Schemes添加到白名单中,原因和做法如下。 iOS9引入了白名单的概念。...在iOS9中,如果使用 canOpenURL:方法,该方法所涉及到的 URL Schemes 必须在"Info.plist"中将它们列为白名单,否则不能使用。

    1.4K30

    IOS开发之新浪围脖

    IOS开发和Web开发一样,网络请求方式包括Get和Post方式。Get和Post两者有和特点和区别,在本篇博客中不做过多的论述,本篇的重点在于如何GET数据和POST数据。...storyboard-based application, you will often want to do a little preparation before navigation 2 - (void)prepareForSegue...UITableViewCell *cell = sender; 6 7 //获取点击Cell的索引 8 NSIndexPath * indexPath = [self.tableView indexPathForCell...在之前的博客中有一篇“IOS开发之自动布局显示网络请求内容” ,用的网络请求是模拟的微博请求,博文的内容也是模拟的,接下来要用到上一篇博文的知识:根据请求内容来动态的设置Cell的高度。...; 5 6 //根据下面是否有图片来判断选择哪一个Cell 7 if (dic[@"thumbnail_pic" ] == nil) 8 { 9

    1.2K50
    领券