我有一个主视图控制器,它是UICollectionViewController,我声明:
var cellIndex: Int = 0
然后我在didSelectItemAtIndexPath方法
中为这个变量赋值cellIndex = indexPath.item+1
然后我通过prepareForSegue方法将其发送到第二个视图控制器
destination.cellIndexToUse = self.cellIndex
在我的第二个视图控制器(即目标)中我声明
var cellIndexToUse: Int = 0
然后在viewDidLoad中我调用一个函数,为一个空数组分配正确的图像数组的值,这取决于被挖掘的单元格,这个函数是......
func assignArrays () {
if cellIndexToUse == 0 {objectsImages = imagesA}
if cellIndexToUse == 1
{objectImages = imagesB}
if cellIndexToUse == 2
{objectImages = imagesC}
if cellIndexToUse == 3
{objectImages = imagesD}
我的问题是: 当我点击单元格时,所有图像都显示正确,但如果我第二次单击所有单元格,第一个单元格显示没有图像,其余所有图像都完全正常。
答案 0 :(得分:0)
也许你过早地调用这个函数。 viewDidLoad
在分配cellIndexToUse
之前发生。{/ p>
尝试在viewWillAppear
设置图片。
答案 1 :(得分:0)
我已经解决了我的问题,它的工作原理非常好。如果有人需要,我会在这里写一个答案:
我根本不需要didSelectItemAtIndexPath
,所以我删除了它,但我更正了prepareForSegue
方法:
if (segue.identified == "mySegueIdentifier") {
let destination = segue.destinationViewController as! MyNextViewController
destination.cellIndexToUse = (myCollectionView.indexPathsForSelectedItems()?.first?.item)!}