我在didSelectItemAtIndexPath
中写了UICollectionViewCell
func来选择UICollectionViewController
。我用两种方式编写代码,但它根本不起作用。另外,我没有在那里收到错误。
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if indexPath.item == 0 {
let layout = UICollectionViewFlowLayout()
let controller1 = DigitalSLRCon(collectionViewLayout: layout)
let nav = UINavigationController()
nav.pushViewController(controller1, animated: true)
// OR
let layout = UICollectionViewFlowLayout()
let controller1 = DigitalSLRCon(collectionViewLayout: layout)
navigationController?.pushViewController(controller1, animated: true)
}
答案 0 :(得分:1)
didSelectItemAtIndexpath
是UICollectionViewDelegate
的函数 - 你不是在单元格中实现它,而是在CollectionView的委托中实现它,所以可能是包含集合视图的视图控制器。
UICollectionViewDelegate
协议delegate
属性didSelectItemAtIndexpath
功能
醇>
答案 1 :(得分:0)
请从UICollectionViewCell
删除委托代表不是单元格,而是UICollectionView处理程序
如果您想更改单元格中的某些元素
你可以像这样覆盖单元格中的默认变量
override var isSelected: Bool {
didSet {
if isSelected {
//do something
} else {
//not selected
}
}
}
override var isHighlighted: Bool {
didSet {
if isHighlighted {
//do something
} else {
//not selected
}
}
}