2012-05-22 2 views
0

Класс контроллера вида (подкласс 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:] 

ответ

1

Вы устанавливаете стиль таблицы при инициализации вида таблицы (см initWithFrame: стиль :). После этого вы не сможете изменить стиль. (это от Apple's documentation).

+0

Кажется, я не изменяю (инициализирует) табличный вид в коде. И я не могу найти этот метод в документах. Не могли бы вы предоставить немного больше света? – David

+0

Вы сами используете этот метод: self.tableView = [[UITableView alloc] initWithFrame: CGRectZero style: UITableViewStyleGrouped]; – melsam

+0

Хорошо, я имел в виду, что эта строка будет «Plain» и теперь (отредактирована выше), она бросает ошибку утверждения с '- [UITableView _createPreparedCellForGlobalRow: withIndexPath:]'. Может быть, это таблица Dynamic, с ячейками прототипов, которые настроены на группировку? С точкой останова табличное представление имеет тип: Plain. – David