我正在尝试在另一个控制器向数组添加一个额外元素之后向我的collectionViewController
添加一个新单元,该数组用作视图控制器的数据源。我被告知以这种方式这样做是错误的,但是如果我在collectionViewController
函数中调用insertItems(at: [indexPath])
,我可以让prepareForSegue
添加新单元格的唯一方法。 / p>
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "unwindToCollectionView"{
let CVC = segue.destination as! CollectionViewController
if let image = image{
CVC.images.insert(imagePost(image:image), at: 0)
print("Image is not nil")
}
let index = IndexPath(item: 0, section: 0)
CVC.collectionView?.insertItems(at: [index])
print("In prepare for segue: \(CVC.images.count)")
}
这是添加新单元格的错误方法,实现我想要实现的目标的正确方法是什么?谢谢。
答案 0 :(得分:0)
这不是一种错误的方法,但你最好尝试使数组全局并在你想要的任何地方添加项目,并且每当主要VC出现在viewDidAppear重新加载集合时
答案 1 :(得分:0)
如果您有CustomCollectionViewController
和AddToArrayViewController
,请使用委托方法AddToArrayViewControllerDelegate
创建委托协议addToArrayViewController(viewController: didAdd:)
。
每当AddToArrayViewController
添加内容时,您都会拨打addToArrayViewController(viewController: didAdd:)
代表电话。
确保CustomCollectionViewController
实现AddToArrayViewControllerDelegate
,然后每当didAdd
调用时,您都可以将该项添加到数组中,然后重新加载CollectionView。