问题描述
如何从嵌套在 TableViewCell 中且 TableViewCell 位于 ViewController 中的 CollectionViewCell 中呈现 ViewController?
How can I present a ViewController from within a CollectionViewCell that is nested in a TableViewCell and that TableViewCell is inside a ViewController?
我尝试了 presentViewController
和 performSegue
,但它们无法从单元格内调用.
I have tried presentViewController
and performSegue
but they can't be called from within a cell.
详细说明:
我有三个文件.
- ProfileViewController
- PeopleCategoryTableViewCell
- PeopleCategoryCollectionViewCell
当有人点击 CollectionViewCell 中的故事时,我希望他们重定向到另一个 ViewController,即 SinglePostVC()
When someone taps on a story in CollectionViewCell then I want them to redirect to another ViewController i.e. SinglePostVC()
我尝试过的:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print("inside this")
self.window?.rootViewController?.present(SinglePostVC(), animated: true, completion: nil)
print("outside this")
}
推荐答案
像这样使用协议和委托
在tableViewCell
protocol CellDelegate {
func colCategorySelected(_ indexPath : IndexPath)
}
var 委托:CellDelegate?
var delegate : CellDelegate?
在 didSelect 中
In didSelect
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
delegate?.colCategorySelected(indexPath)
}
在你的 ProfileViewController
In your ProfileViewController
class HomeVC: UIViewController , UITableViewDelegate, UITableViewDataSource, CellDelegate{
:
:
func colCategorySelected(_ indexPath : IndexPath){
// Push here
}
:
:
}
不要忘记
cellForRow
let Cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! tableCell
Cell.delegate = self // dont forget this line.
return Cell
这篇关于从嵌套在 TableViewCell 中的 CollectionViewCell 中呈现一个 ViewController的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!