【发布时间】:2017-07-27 18:54:08
【问题描述】:
我创建了一个视图控制器,其中嵌入了一个表格视图,并且在表格的每个部分中,我都有一个包含水平集合视图的单元格。 This is what it looks like.collection view delegate 连接到 table view cell 并且 table view delegate 连接到主视图控制器。
我想使用导航控制器的 push 方法将单元格点按到新视图控制器,并将数据从集合视图单元格传递到新视图控制器。但是,我不能从我的集合视图的 didSelectItem 函数中调用导航控制器的 push 方法,因为它嵌套在我的表视图单元格中,而不是实际的视图控制器中。一些帮助将不胜感激,谢谢!
这是主视图控制器的 cellForItem 函数
class SearchController: UIViewController, UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ExploreRow", for: indexPath) as! ExploreRow
let category = classTypes[indexPath.section]
cell.configureCell(type: category)
return cell
}
}
这是集合视图单元格的表格视图单元格的 didSelectItem 中的代码
class ExploreRow: UITableViewCell, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print("Selected \(indexPath.row)")
}
}
打印功能工作正常,但我无法调用导航控制器从该表视图中推送新视图控制器。
【问题讨论】:
-
您应该发布代码以便于帮助您。
-
您所描述的应该可以正常工作。是否抛出错误?只要你在 ViewController 类或扩展中,应该没问题。
标签: ios swift uicollectionview