我正在使用UICollectionViewController
。当我使用UIViewController
从UICollectionViewController
导航到UINavigationController
时,发生了一条消息:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'UICollectionView must be initialized with a non-nil layout parameter.
我不知道为什么会这样。
我使用简单的UICollectionViewController
而没有任何编码(即默认创建的文件)。它的文件名是' NewCollectionViewController.m' &安培; ' NewCollectionViewController.h'
我的Xcode版本是6.1.1。
我的导航代码是:
NewCollectionViewController *CVController = [[NewCollectionViewController alloc] init];
[self.navigationController pushViewController:CVController animated:YES];
我只想从UIViewController
导航到UICollectionViewController
。
答案 0 :(得分:1)
我猜这是你第一次玩UICollectionViewController
。
正如异常原因所述,UICollectionView
必须使用非零布局参数进行初始化。 UICollectionViewController
的正确init方法是
- (instancetype)initWithCollectionViewLayout:(UICollectionViewLayout *)layout
答案 1 :(得分:1)
检查具有NavigationController
的根视图,并确保设置storyBoard
Identifier
。
NewCollectionViewController *CVController = (NewCollectionViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"StoryBordIdentifier"]
[self.navigationController pushViewController:CVController animated:YES];
答案 2 :(得分:0)
你必须添加
[self.collectionView registerClass:[UICollectionView class] forCellWithReuseIdentifier:@"MyCell"];
在NewCollectionViewController类
中答案 3 :(得分:0)
创建UICollectionViewCell
班级和UICollectionViewFlowLayout
班级,并将其添加到UICollectionViewController
班级。