我是一个初学者,目前正在开发我的第一个IOS应用程序。在我的应用程序主页中,我有一个顶部菜单栏,该菜单栏包含一个水平收集视图,其中包含3个单元格页面(3个选项卡)。在这些单元格的每一个内部,都有3个集合视图,显示我数据库中的对象。我还有一个UITabBarController,底部带有3个标签。
我正在尝试在第二个标签中添加另一个收藏夹视图。但是,一旦将第二个选项卡视图控制器类更改为uiCollectionViewController类型,则当我跳回到第一个(主页)并尝试使用水平集合视图滚动时,应用程序将崩溃。仅当第二个选项卡更改为UICollectionView类型时,才出现该错误。
如果这很难理解,我深表歉意。 我已经坚持了一段时间,所以我不得不尝试。
谢谢!!
下面是错误和我的代码在崩溃时的照片:
答案 0 :(得分:0)
您无需制作新的NSIndexPath
并将其投放到IndexPath
中。您可以直接制作一个新的IndexPath
并使用它。
let indexPath = IndexPath(item: menuIndex, section: 0)
最后,请确保您的menuIndex
的值小于数据源数组的count
。
答案 1 :(得分:0)
我认为您的委托方法有问题。在您的控制器中,在集合视图的委托方法'cellForItem'中尝试添加检查是否为正确的集合视图调用了该方法。即,如果您在一个选项卡上,则在方法'cellForItem'中添加签入以确认其是否为相同的集合视图。
答案 2 :(得分:0)
我终于弄明白了这里的问题。
当我在选项卡栏控制器中将它们设置为项目时,我向两个不同的集合视图提供了相同的布局参数。
让layout1 = UICollectionViewFlowLayout()
让firstController = FirstCollectionViewController(collectionViewLayout:layout1)
让layout2 = UICollectionViewFlowLayout()
让secondController = SecondCollectionViewController(collectionViewLayout:layout2)
此实现解决了我的问题!