无法访问我覆盖的单元格类

时间:2018-06-29 12:18:08

标签: ios objective-c swift inheritance

我正在使用第三方框架。我需要重写单元格类。所以我创建了一个子类。并以viewDidLoad()方法注册单元格类。但是问题是,在超类中,他们还注册了自己的单元格,并在layoutIfNeeded()中调用了viewDidLoad方法。所以我的细胞班不被叫。 在这里,我正在寻找解决方案。

编辑:

超类代码

- (void)viewDidLoad {
    [super viewDidLoad];
    [self reloadData];

    [tableView registerNib:[UINib nibWithNibName:@"BUserCell" bundle:[NSBundle chatUIBundle]] forCellReuseIdentifier:bUserCellIdentifier];

    [self setGroupNameHidden:YES duration:0];
}

superClass代码,其中setGroupNameHidden具有layoutIfNeeded()代码。更重要的是,这不是公共方法。

我的代码:

override func viewDidLoad() {
    super.viewDidLoad()
    self.title = "New Conversation"
    self.tableView.register(UINib.init(nibName: "NewConversationContactCell", bundle: Bundle.main), forCellReuseIdentifier: "bUserCellIdentifier")
    self.tableView.reloadData()
}

就像我说过的那样,如果我注释掉setGroupNameHidden:duration:方法会调用超类单元类,那么我的单元类就会被调用。

2 个答案:

答案 0 :(得分:0)

您可以简单地忽略呼叫super.viewDidLoad()

还有另一种方法-覆盖setGroupNameHidden:duration:方法(必要时将其留空)

答案 1 :(得分:0)

缺少代表呼叫。 替换

self.tableView.reloadData()

self.tableView.delgate = self
self.tableView.dataSource = self
self.tableView.reloadData()