Не могу получить доступ к моему переопределенному классу ячеек - PullRequest
0 голосов
/ 29 июня 2018

Я использую сторонний фреймворк. где мне нужно переопределить класс ячейки. поэтому я создал подкласс. и регистрация класса ячейки в методе viewDidLoad(). но проблема в том, что в суперклассе они также регистрируют свои ячейки и вызывают layoutIfNeeded() метод в viewDidLoad. Так что мой класс сотовой связи не называется. Здесь я ищу решение.

Edit:

код суперкласса

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

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

    [self setGroupNameHidden:YES duration:0];
}

код суперкласса, где 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 голосов
/ 29 июня 2018

Недостающие звонки делегатов. Заменить

self.tableView.reloadData()

с

self.tableView.delgate = self
self.tableView.dataSource = self
self.tableView.reloadData()
0 голосов
/ 29 июня 2018

Вы можете просто игнорировать вызов super.viewDidLoad()

есть и другой способ - переопределить метод setGroupNameHidden:duration: (при необходимости оставьте его пустым)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...