如何在 didSelectItemAt indexPath 函数下显示 ViewController ? (没有故事板)

How to show ViewController under the didSelectItemAt indexPath function ? (without storyboard)

周末愉快。我在 didSelectItemAt indexPath 函数下有问题,我想去新的视图控制器,它显示详细信息,每个单元格必须有不同的视图控制器(它会根据来自协议的数据而改变)。我尝试了很多方法来做到这一点,但我想不通。我调用 present 和 push view controller 代码,但它也不起作用,因为 navigationController 代码无法在 didSelectItemAt 函数下工作。最后我试了一下:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    let homecon = HomeController()
    homecon.showDetailPage() }


func showDetailPage() {
    let newView = pageDetail()
    self.present(newView, animated: true, completion: nil)

}

(来自 HomeController 的 showDetailPage 函数)。但是该代码也给出了错误

'UICollectionView must be initialized with a non-nil layout parameter'.

所以我无法解决。我该如何解决请帮助我。祝你工作愉快!

这是因为 HomeControllerUICollectionViewController 的子类,并且 collectionViewController 没有布局就无法初始化!

所以改用这个初始化器:

let homecon = HomeController(collectionViewLayout: UICollectionViewLayout())

哦,这只是一周的开始。