CollectionView navigationController..pushViewController()不会执行任何操作而没有错误

时间:2019-02-16 14:51:24

标签: ios swift4 xcode10

我已经创建了一个CollectionView,我想根据单击的行来打开一个具有特定详细信息的ViewController。(我不使用情节提要,而是通过编程方式完成的。)

enter image description here

我已经查看了文档,并且尝试使用覆盖函数didSelectItemAtnavigationController?.pushViewController(),但是似乎什么也没发生。没有错误或什么?查看我的代码:

(CollectionViewController) enter image description here

(ViewController) enter image description here

我也尝试过将布局提供给ViewController,但是没有运气。显然,它接受了每一行的单击功能,因为它可以打印到日志正常:

enter image description here

对我在这里错过的任何帮助将不胜感激。

1 个答案:

答案 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)