我有一个iPad应用程序,使用Storyboard,Tab Bar和XCode 4.5。我的一个场景在左上象限中有一个UITableView,在右上象限中有标签和UITextBox。
当我点击第二个标签时,我将进入上述场景。这是代码:
- (void)viewDidLoad {
[super viewDidLoad];
[self.collectionView registerClass:[Cell class] forCellWithReuseIdentifier:@"MY_CELL"];
}
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
return 4;
}
- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section {
return 4;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath; {
Cell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"MY_CELL" forIndexPath:indexPath];
cell.label.text = [NSString stringWithFormat:@"%d",indexPath.item];
return cell;
}
这是界面定义:
@interface ClientViewController : UIViewController <UICollectionViewDelegate, UICollectionViewDataSource> {
}
这是错误:
* 由于未捕获的异常终止应用&#39; NSInvalidArgumentException&#39;,原因:&#39; - [UIView collectionView:numberOfItemsInSection:]:发送到的无法识别的选择器 实例0x7d925b0&#39;
如您所见,我对numberOfSectionsInCollectionView使用了相同的代码。我研究过SO和Google,但没有发现任何适用的内容。
我做错了什么?
答案 0 :(得分:5)
有两个代表要设置。一个是delegate
,一个是dataSource
。通常,两者都应设置为指向视图控制器(即,在大多数情况下为self
)。