0
類
我有類層次與loadNibNamed在基類覆蓋兒童實例
ParentCell extends UITableViewCell
ChildCell extends ParentCell
ParentCell具有單獨的XIB,在子小區i被創建並在ParentCell XIB添加只有一個按鈕到一個視圖。但我不能添加此按鈕的操作。因爲即使我爲ChildCell創建了一個實例,它也會返回ParentCell的實例
因爲我使用loadNibNamed來獲得帶有IBOutlet連接的XIB。 @在ChildCell類在ParentCell類
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self = [[NSBundle mainBundle] loadNibNamed:@"ParentCell" owner:self options:nil]
[0];
}
return self;
}
initWithStyle方法@ initWithStyle方法
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.button=[[UIButton alloc] init];
[self.contentView addSubview:button];
}
return self;
}
@ - 視圖 - 控制器
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ChildCell ";
ChildCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell=[[ChildCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
NSLog(@"Cell : %@", cell); //this have instance of ParentCell instead of ChildCell
}
}
現在,通過這種方式
暫時解決@initWithStyle方法ParentCell類
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
NSBundle *mainBundle = [NSBundle mainBundle];
NSArray *views = [mainBundle loadNibNamed:@"ParentCell"
owner:self
options:nil];
//Here we are linking the view with appropriate IBOutlet by their tag
self.lblTitle=[views[0] viewWithTag:100];
self.lblContent=[views[0] viewWithTag:200];
}
return self;
}
@ initWithStyle方法ChildCell類
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.button=[[UIButton alloc] init];
[self.contentView addSubview:button];
}
return self;
}
但我不知道這是遵循正確的方法,或者我們有一些其他更好的方法,然後這個..