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 ответ
Переехать
статическая NSString *CellIdentifier = @"Cell";
из метода, сделайте это публичным.
- Когда вы создаете табличное представление, напишите эту строку, где вы создаете таблицу (в viewDidLoad или вашем методе, где вы создаете таблицу)
[dataTable registerClass:[UITableViewCell class] forCellReuseIdentifier:tableIdentifier];
Удалить состояние ячейки из
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
метод, потому что ваша ячейка табличного представления не ноль, и вы не можете установить стиль ячейки.
Итак, вы должны написать
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];