如何在 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'.
所以我无法解决。我该如何解决请帮助我。祝你工作愉快!
这是因为 HomeController
是 UICollectionViewController
的子类,并且 collectionViewController 没有布局就无法初始化!
所以改用这个初始化器:
let homecon = HomeController(collectionViewLayout: UICollectionViewLayout())
哦,这只是一周的开始。
周末愉快。我在 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'.
所以我无法解决。我该如何解决请帮助我。祝你工作愉快!
这是因为 HomeController
是 UICollectionViewController
的子类,并且 collectionViewController 没有布局就无法初始化!
所以改用这个初始化器:
let homecon = HomeController(collectionViewLayout: UICollectionViewLayout())
哦,这只是一周的开始。