我在tableview单元格内有一个集合视图,因此我想选择集合视图单元格,然后转到另一个视图控制器。那我该怎么做呢?
我已经尝试过自己,它要么什么都不做,要么“应用程序试图以模态方式显示一个活动的控制器”,要么“试图在视图不在窗口层次结构中的..上呈现..”。
答案 0 :(得分:2)
在单元格类(单元格类外部)中添加delegate
并在类内声明变量:
protocol CellSelectedDelegate { //Name them as you want
func cellSelected()
}
class TableCell: UITableViewCell {
var delegate: CellSelectedDelegate?
}
然后在单元格的didSelectItem
中:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
delegate?.cellSelected()
}
现在转到具有tableView datasource
和delegate
方法的 controller 类(假设它们在controller类中,而不是在另一个视图中),并将其添加到 cellForItem 方法:
cell.delegate = self
最后,在控制器类中实现custom delegate
方法:
extension YourController: CellSelectedDelegate {
func cellSelected() {
//Present next controller here
}
}