UICollectionView didSelectedItemAt: первый щелчок по ячейке не работает - PullRequest
0 голосов
/ 20 ноября 2018

Как написано в заголовке, didSelectedItemAt содержит ошибки, но это немного сложнее, чем в заголовке, я объясняю:

Я пытаюсь закодировать приложение, которое перечисляет некоторые материалы.Так что у меня есть ViewController с внутри TableView и CollectionView.В начале скрытое представление таблицы имеет значение false, а представление коллекции - true.У меня есть кнопка на панели навигации, чтобы переключить CollectionView / TableView скрытым true / false (надеюсь, я буду понятен с моим плохим английским!).Таким образом, didSelectedRowAt работает хорошо, но didSelectedItemAt - нет.Когда я впервые щелкаю по ячейке, ничего не происходит (по крайней мере, на экране), но второй щелчок работает ..... С указателем первого щелчка ... Я не могу понять, почему это происходит ..Кто-нибудь знает почему?Вот некоторый код приложения:

func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
    print (dogs[indexPath.row].name)
    let vc = storyboard?.instantiateViewController(withIdentifier: "DogDetailsView") as? DogDetailsView
    vc?.nameSend = dogs[indexPath.row].name
    vc?.infoSend = dogs[indexPath.row].info
    self.navigationController?.pushViewController(vc!, animated: true)
}

Спасибо за помощь :)

1 Ответ

0 голосов
/ 21 ноября 2018

Вы используете неправильный метод делегата.Используйте следующее

 - (void)collectionView:(UICollectionView *)collectionView 
didSelectItemAtIndexPath:(NSIndexPath *)indexPath;

Причина, по которой ваш didDeselect работает после второго касания, заключается в том, что вы включили allowMultilpleSelection и каждый раз, когда вы нажимаете в первую очередь, эта ячейка выбирается, но вы не реализовалиправильный делегат, чтобы услышать это.при повторном нажатии эта ячейка теперь отменяется.Вот почему вы получаете обратный вызов в реализованном методе таким способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...