我的应用因以下原因崩溃
[UICollectionViewFlowLayout collectionView:numberOfItemsInSection:]: unrecognized selector sent to instance.
这是因为我的委托方法在我的
UICollectionReusableView
中,它不是视图控制器。在为UICollectionView设置委托时,如何将UICollectionView嵌入UICollectionViewSectionHeader
内并防止我的应用程序崩溃。#import "HomeBannerReusableView.h"
#import "HomeBannerCell.h"
@interface HomeBannerReusableView () <UICollectionViewDelegate, UICollectionViewDataSource>
@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
@end
@implementation HomeBannerReusableView
- (void)awakeFromNib {
// Initialization code
[self.collectionView registerNib:[UINib nibWithNibName:@"HomeBannerCell" bundle:nil] forCellWithReuseIdentifier:@"HomeBannerCell"];
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return 1;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
HomeBannerCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"HomeBannerCellReusableView" forIndexPath:indexPath];
return cell;
}
最佳答案
无需将collectionView委托和dataSource设置为UIViewController的子类。在我看来,您不小心将dataSource设置为布局,而不是HomeBannerReusableView。检查设置的位置(XIB,情节提要,代码)。