DetailTextLabel не отображается в iOS 8 xcode 6

Я сделал учебник по запуску iPhone 5S, Xcode 6 и iOS 8. Я хочу отобразить textDetailLabel в таблице ячеек. Можете ли вы помочь мне в чем здесь проблема? Я уже проверил синтаксис, но он не работает

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
Checklist *checklist = [self.dataModel.lists objectAtIndex:indexPath.row];
cell.textLabel.text = checklist.name;
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;

int count = [checklist countUncheckedItems];
if ([checklist.items count] == 0) {
    cell.detailTextLabel.text = @"(No Items)";
} else if (count == 0) {
    cell.detailTextLabel.text = @"All Done!";
} else {
    cell.detailTextLabel.text = [NSString stringWithFormat:@"%d Remaining", count];
}
return cell;

}

1 ответ

  1. Переехать

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

из метода, сделайте это публичным.

  1. Когда вы создаете табличное представление, напишите эту строку, где вы создаете таблицу (в viewDidLoad или вашем методе, где вы создаете таблицу)

[dataTable registerClass:[UITableViewCell class] forCellReuseIdentifier:tableIdentifier];

  1. Удалить состояние ячейки из

    • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

метод, потому что ваша ячейка табличного представления не ноль, и вы не можете установить стиль ячейки.

Итак, вы должны написать

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
Другие вопросы по тегам