我想在弹出窗口中有一个集合视图。所以首先我设置了我的 Collection 视图控制器和我的自定义单元格。当我从这里启动程序时,它工作正常。
在另一个视图控制器中,我创建了一个以集合视图作为其内容的弹出框控制器。当我点击工具栏按钮时,弹出框需要变为活动状态。
当我运行模拟器时,出现此错误:
'无法使同类视图出列:带有标识符 CameraSystemCell 的 UICollectionElementKindCell - 必须为标识符注册一个 nib 或一个类,或者连接情节提要中的原型单元格
这是我的viewcontroller.m代码:
#import "ViewController.h"
#import "CameraSystemMenuViewController.h"
@interface ViewController () <UIPopoverControllerDelegate>
{
CameraSystemMenuViewController *cameraSystemMenu;
UIPopoverController *popoverController;
}
@end
@implementation ViewController
@synthesize cameraSystemButton = _cameraSystemButton;
- (void)viewDidLoad
{
[super viewDidLoad];
UICollectionViewFlowLayout *aFlowLayout = [[UICollectionViewFlowLayout alloc] init];
cameraSystemMenu = [[CameraSystemMenuViewController alloc] initWithCollectionViewLayout:aFlowLayout];
popoverController = [[UIPopoverController alloc] initWithContentViewController:cameraSystemMenu];
[popoverController setDelegate:self];
}
- (IBAction)cameraSystemSelectButton:(id)sender
{
[popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[popoverController setPopoverContentSize:CGSizeMake(320, 400)];
}
@end
这是我在 CameraSystemMenuViewController.m 中的cellForItemAtIndexPath:
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CameraSystemCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CameraSystemCell" forIndexPath:indexPath];
[[cell collectionImageView] setImage:cameraImage];
cell.cameraSystemName.text = [cameraNumbers objectAtIndex:indexPath.item];
return cell;
}
单元标识符是正确的,并且情节提要单元具有正确的自定义类。我不必注册,因为我使用的是故事板中的自定义单元格。该怎么办?