无法从UIViewController导航到UICollectionViewController

时间:2015-02-09 09:05:35

标签: ios objective-c iphone xcode uiviewcontroller

我正在使用UICollectionViewController。当我使用UIViewControllerUICollectionViewController导航到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

4 个答案:

答案 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];

Push to new ViewController

答案 2 :(得分:0)

你必须添加 [self.collectionView registerClass:[UICollectionView class] forCellWithReuseIdentifier:@"MyCell"];

在NewCollectionViewController类

答案 3 :(得分:0)

创建UICollectionViewCell班级和UICollectionViewFlowLayout班级,并将其添加到UICollectionViewController班级。