我正在嘗試爲UITableView節頭創建一個自定義UIView(.h .m & .xib)。無法識別的選擇器 - 自定義UITableView節頭
的目的是,我可以使用下面的行通過標題標題:
sectionHeaderView.sectionLabel.text = @"SOME TEXT";
然而,這總是會引起以下錯誤:
[UIView sectionLabel]: unrecognized selector sent to instance 0x6d3f6f0
它爲什麼會認爲這是一個UIView時我聲明它爲DUSettingsSectionView?這是代碼。希望有人能指出我正確的方向。
==== ==== CODE
從我的UIViewController
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 16;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
DUSettingsSectionView *sectionHeaderView = [[DUSettingsSectionView alloc] init];
// sectionHeaderView.sectionLabel.text = @"SOME TEXT";
return sectionHeaderView;
}
從DUSettingsSectionView.h
#import <UIKit/UIKit.h>
@interface DUSettingsSectionView : UIView {
UILabel *sectionLabel;
}
@property (nonatomic, strong) IBOutlet UILabel *sectionLabel;
@end
從DUSettingsSectionView.m
#import "DUSettingsSectionView.h"
@implementation DUSettingsSectionView
@synthesize sectionLabel;
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"DUSettingsSectionView" owner:self options:nil];
self = [nibArray objectAtIndex:0];
}
return self;
}
@end
sectionLabel已滿y連接到.xib中,並將.xib設置爲DUSettingsSectionView類。
您展示在註釋掉的分配你的'viewForHeaderInSection:'方法...是導致錯誤的那個嗎? –
是的,如果我取消註釋賦值行然後我收到以下錯誤: - [UIView sectionLabel]:無法識別的選擇器發送到實例0x6d3f6f0 2012-06-23 15:36:13.891 du [4108:207] ***終止應用程序由於未捕獲異常'NSInvalidArgumentException',原因:' - [UIView sectionLabel]:無法識別的選擇器發送到實例0x6d3f6f0' – Richard
嘗試'initWithFrame:'中的NSLog(@「Nib:%@」,nibArray);'它認爲正在加載。 –