Нет видимого @interface для 'UIViewController' объявляет селектор initWithStyle:reuseIdentifier:

Я создаю экземпляр UITableView в UIViewController, когда представление загружается как:

table = [[UITableView alloc]initWithFrame:CGRectMake(self.view.frame.origin.x,self.view.frame.origin.y + hauteurFavorisCell, self.view.frame.size.width, self.view.frame.size.height-hauteurFavorisCell-hauteurNavigationBar)];

[table registerClass:[UITableViewCell class] forCellReuseIdentifier:@"DetailsFavoris"];
table.delegate = self;
table.dataSource = self;
table.hidden = YES;
[self.view addSubview:table];

Проблема в том, что я хочу, чтобы ячейка имела стиль: UITableViewCellStyleValue1. Потому что ячейки создаются с помощью метода initWithStyle: UITableViewCellStyleDefault. Я не могу использовать dequeueReusableCellWithIdentifier:CellIdentifier. Мой код таков:

статическая NSString *CellIdentifier = @"DetailsFavoris";

UITableViewCell *cell ;//= [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil) {
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
}

...

return cell;

Но я хотел бы повторно использовать клетки, чтобы быть более эффективным. Я записал:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    // ignore the style argument, use our own to override
    self = [super initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuseIdentifier];
    if (self) {
        // If you need any further customization
    }
    return self;
}

Но я получил ошибку: нет видимого @interface для 'UIViewController' объявляет селектор initWithStyle:reuseIdentifier:.

Что я делаю неправильно? Я проверял другие ответы, но ничего не нашел.

1 ответ

Переместить этот код

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    // ignore the style argument, use our own to override
    self = [super initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuseIdentifier];
    if (self) {
        // If you need any further customization
    }
    return self;
}

На ваш UITableViewCell подкласс. Потому что этот метод связан с UITableViewCell класс, а не UIViewController,

Другие вопросы по тегам