我已经创建了一个CollectionView,我想根据单击的行来打开一个具有特定详细信息的ViewController。(我不使用情节提要,而是通过编程方式完成的。)
我已经查看了文档,并且尝试使用覆盖函数didSelectItemAt
和navigationController?.pushViewController()
,但是似乎什么也没发生。没有错误或什么?查看我的代码:
我也尝试过将布局提供给ViewController,但是没有运气。显然,它接受了每一行的单击功能,因为它可以打印到日志正常:
对我在这里错过的任何帮助将不胜感激。
答案 0 :(得分:1)
首先,请确保在您的TabBarController
中,控制器已初始化为navigationController
func viewDidLoad() {
let vc1 = UINavigationController(rootViewController: YourController())
viewControllers = [vc1, vc2]
}
在将其放入viewControllers
数组中之前,可以在navigationController?.pushViewController()
中调用vc1
另一件事:在推送之前初始化CollectionViewController
时,请确保提供流布局,如下所示:
let layout = UICollectionViewFlowLayout()
let detailVC = PlaceDetailController(collectionViewLayout: layout)
detailVC.place = ... // Pass value here
navigationController?.pushViewController(detailVC, animated: true)