Как нажать на элемент в одном контроллере и показать его в другом классе uicollectionviewcontroller - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь нажать на ячейку представления коллекции в одном контроллере представления коллекции и динамически добавить ее в другой контроллер представления коллекции на том же экране, который при заполнении превратится в список элементов с горизонтальной прокруткой. Аналогично тому, что видно на приложенном изображении приложения chickfila, когда вы хотите добавить соленые огурцы или бекон на заказ.

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 голосов
/ 15 июня 2019

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] = []
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...