我有一个名为fatherCell的UITableViewCell及其nib文件,为了使代码可重用,然后我通过创建没有nib文件的childCell来继承fatherCell。但是我不知道如何从childCell到fatherCell的nib建立正确的连接。 这是代码:
FatherCell和childCell
@interface FatherCell : UITableViewCell
@property (nonatomic, weak) IBOutlet UILabel *titleLabel;
- (IBAction)cellBtnPressed:(id)sender;
@end
@implementation FatherCell
- (void)awakeFromNib
{
[super awakeFromNib];
self.titleLabel.text = @"fatherTitle";
}
- (IBAction)cellBtnPressed:(id)sender
{
NSLog(@"call father method");
}
@end
@interface ChildCell : FatherCell
@end
@implementation ChildCell
- (void)awakeFromNib
{
[super awakeFromNib];
self.titleLabel.text = @"childTitle";
}
- (IBAction)cellBtnPressed:(id)sender
{
NSLog(@"call child method");
}
@end
然后如何调用UITableViewController? 我使用下面的代码,但遗憾的是我无法获得预期的结果,只能调用fatherCell的方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"identifier";
ChildCell *cell = (ChildCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"FatherCell" owner:self options:nil] objectAtIndex:0];
}
return cell;
}
有人能帮助我吗?
答案 0 :(得分:0)
单元的对象类在nib文件(自定义类字段)中指定,因此如果使用FatherCell.xib,您将始终使用FatherCell对象。
您需要将您的FatherCell.xib复制到另一个xib文件并更改副本中的单元格类。
您可以考虑将自定义方法从单元视图类抽象到控制器类中,可能通过使用委托或块,这样您只需要一个单元类,并且可以通过提供适当的委托或处理程序块。