У меня есть viewController, который содержит UICollectionView, в котором я реализовал оба метода делегата shouldSelectItemAtIndexPath и didSelectItemAtIndexPath. Метод shouldSelect работает должным образом и вызывается для каждой выбранной ячейки.
Метод didSelect не вызывается для первой затронутой ячейки, даже если она была нажата несколько раз. Но если вы нажмете на вторую ячейку, вызовется метод didSelect, но значение indexPath.item будет для ранее нажатой ячейки.
Например, я нажимаю на первую ячейку в collectionView, и вызывается shouldSelect со значением indexPath.item = 0. DidSelect не вызывается даже для нескольких нажатий на ячейку.
Если я затем нажму на любую другую ячейку, скажем, например, на 4-ю ячейку в collectionView, будет вызвана функция shouldSelect, и ее значение indexPath.item = 3. Также вызывается didSelect, но значение indexPath.item = 0 (ранее выбранная ячейка ).
Если я продолжаю выбирать разные ячейки, didSelect продолжает вызываться, но значение indexPath.item всегда относится к ранее выбранному элементу. Если я нажму на ячейку несколько раз, didSelect не будет вызван, пока я не нажму на другую ячейку.
Кто-нибудь? Я в тупике. все остальные методы источника данных и делегата работают нормально. Делегат и источник данных правильно подключены в раскадровке.