如何在一个控制器中点击项目并将其显示在另一个uicollectionviewcontroller类中

时间:2019-06-15 17:16:33

标签: swift uicollectionview

我正在尝试在一个集合视图控制器中点击一个集合视图单元,并将其动态添加到同一屏幕上的另一个集合视图控制器中,当填充时它将变成水平滚动项列表。想要在订单中添加泡菜或熏肉时,类似于小鸡应用程序的所附图像中显示的内容。

chickfila app

我有两个不同的集合视图控制器,一个是水平效果,显示在屏幕顶部,另一个是显示可以在下面选择的项目的控制器。当我点击下面的项目时,我认为可以添加数组,但是尽管进行了各种各样的reloadData调用,但我无法在上面的水平控制器中显示该项目。似乎没有再次调用didSelectItemAt不管我做什么。我正在尝试仅使用didSelectItemAt方法执行此操作。

我可能会完全错吗?我对iOS编程世界比较陌生。感谢您的任何建议或帮助!

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    print("tapped to add extra item somehow..")
    let selectedItem = indexPath.item
    if selectedItem >= 0 && indexPath.item < extras.count {
        super.extras.append(Extras(imageName: "bacon", calories: 100, price: 1, quantity: 1))
    }

1 个答案:

答案 0 :(得分:0)

indexPath.index仅在元素数组中为您提供索引号,而不在您要查找的元素(对象)中。

您可能想尝试这样的事情:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    print(arrayHoldingYourObjects[indexPath.item].id)
    collector.append(arrayHoldingYourObjects[indexPath.item])
    print("This is your colector \(collector)")
}

var collector: [Any] = []