单击collectionview的单元格时打开另一个视图控制器

Posted

技术标签:

【中文标题】单击collectionview的单元格时打开另一个视图控制器【英文标题】:Opening another viewcontroller when clicking on cell of collectionview 【发布时间】:2021-09-11 03:23:34 【问题描述】:

我是 swift 新手,我按照这个视频做了一个收藏视图,它运行良好。但是在单击时从一个单元格单击到另一个单元格不起作用。

https://www.youtube.com/watch?v=TQOhsyWUhwg

func collectionView(_ collectionView: UICollectionView, 
  didSelectItemAt indexPath: IndexPath) 
    print("Cell \(indexPath.row + 1) clicked")
  

这里打印被选中的单元格。单击单元格时,我只需要打开另一个视图。谁能帮帮我。

【问题讨论】:

"单击单元格时我只需要打开另一个视图" 打开另一个视图是什么意思?转换到不同的视图控制器? 是的另一个视图控制器..对不起 通过运行搜索来帮助自己。有很多类似的话题等着你。 【参考方案1】:

您只需要创建另一个视图控制器的对象并推送它。 喜欢:

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewController(withIdentifier: "your_view_identifier") as! Your_ViewController
self.navigationController?.pushViewController(nextViewController, animated: true)

【讨论】:

【参考方案2】:

让我们猜测您要导航的 viewController 是SecondViewController。故事板名称是Main

导航 ViewController

    您需要创建该 ViewController 的实例 您需要从 Navigation Controller 推送该 viewController
class SecondViewController: UIViewController 
    


var secondViewController: SecondViewController 
    let st = UIStoryboard(name: "Main", bundle: nil)
    let vc = st.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
    return vc

现在,如果您想通过单元格点击导航视图控制器。只需将该视图控制器推入您的导航堆栈即可。

func collectionView(_ collectionView: UICollectionView, 
  didSelectItemAt indexPath: IndexPath) 
    print("Cell \(indexPath.row + 1) clicked")
    self.navigationController?.pushViewController(secondViewController, animated: true)
  

【讨论】:

以上是关于单击collectionview的单元格时打开另一个视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift ios 中单击该单元格时在 UICollectionViewcell 中显示图像?

选中时 CollectionView 单元格移动

隐藏collectionview单元格时关闭空间?

单击单元格时列表视图更改图标

选择collectionView单元格时如何获取项目ID

ios:在点击collectionview单元格或tableview单元格时禁用第二个触摸事件