就像标题中所写的那样,didSelectedItemAt是bug,但这比标题中的要复杂一些,我解释道:
我尝试编写一个列出一些内容的应用程序。因此,我有一个ViewController,其中包含一个TableView和一个CollectionView。开始时,tableView的hidden设置为false,而collectionView的hidden设置为true。我在导航栏上有一个按钮,用于切换CollectionView / TableView的hidden true/false(我希望我糟糕的英语能被理解!)。因此,didSelectedRowAt运行良好,但didSelectedItemAt不好。当我第一次单击单元格时,没有任何React(至少在屏幕上),但第二次点击是工作.....与索引路径的第一次点击...我不知道为什么会发生这种情况。
有人知道为什么吗?
下面是应用程序的一些代码:
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条答案
按热度按时间1mrurvl11#
您正在使用错误委托方法请使用以下方法
didDeselect
在第二次点击后仍然有效的原因是,你已经打开了allowMultilpleSelection
,当你第一次点击该单元格时,它会被选中,但是你没有实现正确的代理来听到它。当你再次点击时,该单元格现在被取消选中。这就是为什么你以这种方式在实现的方法中获得回调。