2

我有一个 iPad 应用程序,使用 Storyboards、Tab Bar 和 XCode 4.5。我的一个场景在左上象限有一个 UITableView,在右上象限有标签和 UITextBoxes。

当我单击第二个选项卡时,我被带到了上述场景。这是代码:

- (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> {

}

这是错误:

*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIView collectionView:numberOfItemsInSection:]: unrecognized selector sent to instance 0x7d925b0”

如您所见,我对 numberOfSectionsInCollectionView 使用了相同的代码。我研究了 SO 和 Google 并没有发现任何适用的。

我究竟做错了什么?

4

1 回答 1

5

有两个代表要设置。一个是delegate,一个是dataSource。通常,两者都应该设置为指向您的视图控制器(即,self在大多数情况下)。

于 2012-11-18T20:49:06.623 回答