我只能通过prepareforSegue将新单元格添加到集合View Controller

时间:2018-01-25 19:18:38

标签: ios swift uicollectionview uicollectionviewcell unwind-segue

我正在尝试在另一个控制器向数组添加一个额外元素之后向我的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)")
    }

这是添加新单元格的错误方法,实现我想要实现的目标的正确方法是什么?谢谢。

2 个答案:

答案 0 :(得分:0)

这不是一种错误的方法,但你最好尝试使数组全局并在你想要的任何地方添加项目,并且每当主要VC出现在viewDidAppear重新加载集合时

答案 1 :(得分:0)

如果您有CustomCollectionViewControllerAddToArrayViewController,请使用委托方法AddToArrayViewControllerDelegate创建委托协议addToArrayViewController(viewController: didAdd:)

每当AddToArrayViewController添加内容时,您都会拨打addToArrayViewController(viewController: didAdd:)代表电话。

确保CustomCollectionViewController实现AddToArrayViewControllerDelegate,然后每当didAdd调用时,您都可以将该项添加到数组中,然后重新加载CollectionView。