为什么我的 .pushViewController 不能在 swift 中从 didSelectItemAt 工作

问题描述

当我用户通过 didSelectItemAt 函数从列表中选择一个项目时,我试图推送一个 viewController,但是当用户选择该项目时什么也没有发生。

这是我的 didSelectItemAt 函数到目前为止的样子:

override func collectionView(_ collectionView: UICollectionView,didSelectItemAt indexPath: IndexPath) {
    print(stores[indexPath.row].storeName)
    let myStore = UserStoreVC(collectionViewLayout: UICollectionViewFlowLayout())
    myStore.store = stores[indexPath.row]
    navigationController?.pushViewController(myStore,animated: true)
}

这是我如何设置我的 UserStoreVC 类:

class UserStoreVC: UICollectionViewController,UICollectionViewDelegateFlowLayout {}

用户选择商品时,该功能会被调用,因为商店名称通过打印功能正确打印,但没有显示任何内容,我不知道为什么不。

我是不是做错了什么,因为这是我在同一个应用程序中推送其他 viewController 并且它正常工作的方式

我如何使它工作?

当我向这一行添加断点时,我得到了这个:

enter image description here

discoverCollection 集合视图:

let collectionView: discoverCollection = {
    let layout = UICollectionViewFlowLayout()
    layout.scrollDirection = .horizontal
    let view = discoverCollection(collectionViewLayout: layout)
    return view
}()

解决方法

步骤 1:查看此处为您的 ViewController 添加 NavigationController 的步骤: enter image description here

第 2 步:单击为您的 VC 添加 NavigationController。 enter image description here

第 3 步:最后你有导航控制器。 enter image description here