Класс контроллера вида (подкласс UITableViewController) в этом приложении утилиты используется для отображения 4 табличных представлений, 3 из которых вводятся через навигационный контроллер. В раскадровке стиль был установлен на .
Вопрос: Можно ли программно изменить на Style Plain
использовать индекс и освободить некоторое пространство экрана для отображения индекса? Я пробовал предложения из других вопросов SO, чтобы изменить это в init
и в viewDidLoad
без успеха.Программно сменять UITableViewStyle & cells - Сделано в Storyboard, Mod in Code
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.title = self.title;
if ([[self parentViewController] isKindOfClass:[UITabBarController class]]) {
[self getNewDataForDate:nil];
self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
}
}
Редактировать 1: Настоящая проблема выходит за рамки вышеуказанного кода. Изменение «стиля» раскадровки, созданного табличным представлением с ячейками прототипов (которые отображаются там как сгруппированные), должно требовать кодирования некоторых других мод. Это здесь?
static NSString *CellIdentifier = @"ListCell";
DetailTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
В результате этой ошибки:
Assertion failure in -[UITableView _createPreparedCellForGlobalRow:withIndexPath:]
Кажется, я не изменяю (инициализирует) табличный вид в коде. И я не могу найти этот метод в документах. Не могли бы вы предоставить немного больше света? – David
Вы сами используете этот метод: self.tableView = [[UITableView alloc] initWithFrame: CGRectZero style: UITableViewStyleGrouped]; – melsam
Хорошо, я имел в виду, что эта строка будет «Plain» и теперь (отредактирована выше), она бросает ошибку утверждения с '- [UITableView _createPreparedCellForGlobalRow: withIndexPath:]'. Может быть, это таблица Dynamic, с ячейками прототипов, которые настроены на группировку? С точкой останова табличное представление имеет тип: Plain. – David