为啥我的 .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 不起作用?