为啥我的 .pushViewController 不能快速从 didSelectItemAt 工作

Posted

技术标签:

【中文标题】为啥我的 .pushViewController 不能快速从 didSelectItemAt 工作【英文标题】:Why doesn't my .pushViewController work from didSelectItemAt in swift为什么我的 .pushViewController 不能快速从 didSelectItemAt 工作 【发布时间】:2021-03-11 12:49:07 【问题描述】:

当我用户通过 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 的方式,并且它可以正常工作

如何让它发挥作用?

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

DiscoverCollection 集合视图:

let collectionView: DiscoverCollection = 
    let layout = UICollectionViewFlowLayout()
    layout.scrollDirection = .horizontal
    let view = DiscoverCollection(collectionViewLayout: layout)
    return view
()

【问题讨论】:

在 navigationController?.pushViewController(myStore, animated: true) 上创建一个 breakePoint 并检查 navigationcontroller 是否为 nil。 我添加了断点结果的图片我没有看到 navigationController navigationController 是 nil,因为当我添加一个 if 语句来检查它是否返回 true 所以这是你的问题。您需要在 Storyboard 中为您的 VC 制作一个导航控制器。 【参考方案1】:

第 1 步:逐步查看此处,为您的 ViewController 添加 NavigationController :

第 2 步:单击为您的 VC 添加 NavigationController。

第 3 步:最后你有了 navigationController。

【讨论】:

我正在以编程方式进行所有操作。而且它已经是一个navicationController 那么您有解决方案或需要任何帮助吗? 不,它仍然无法正常工作,非常感谢您的帮助 这个集合视图被放置在另一个集合视图的标题内。这就是它不起作用的原因吗? 不。首先修复 navigationController 问题。这是唯一的问题。尝试将 VC 中的 navigationController 对象传递给此 CollectionView 类,然后尝试导航。

以上是关于为啥我的 .pushViewController 不能快速从 didSelectItemAt 工作的主要内容,如果未能解决你的问题,请参考以下文章

setStatusBarHidden 神奇地修复了无法正常工作的 pushViewController,为啥?

为啥 self.navigationController pushViewController 不起作用?

为啥我的一些 UIView 在导航后会发生变化?

使用 pushViewController 时,我的视图控制器未正确初始化?

PushViewController 显示黑屏

PushViewController 全屏