2013-05-30 2 views
0

Я создал tableviewcontroller для обработки 4 статических ячеек в виде таблицы. Табличное представление расположено прямо под 4 ячейками. Однако последняя ячейка, 4-я ячейка, является необязательной, основанной на результатах третьей ячейки.Почему мой столбик падает по идентификатору?

Сборщик возвращает значение, и когда он это делает, он перезагружает представление таблицы, чтобы активировать 4-я ячейка, если значение будет правильным.

SettingsViewController

При запуске приложения оно происходит сбой при загрузке SettingsViewController с этой ошибкой:

, истекающий приложение из-за неперехваченного исключением «NSInternalInconsistencyException», причина: «не в состоянии из очереди ячейки с идентификатором ячейки - должен зарегистрировать ниб или класс для идентификатора или подключить ячейку прототипа в раскадровке.

Я думал, что мне не нужны идентификаторы повторного использования, если у меня есть статические ячейки?

Вот соответствующий код:

#pragma mark - Table view data source 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    // Return the number of sections. 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    if(self.showLastCell) 
    { 
     return 4; 
    } 
    return 3; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

    // Configure the cell... 

    return cell; 
} 

ответ

0

извлечения из ячейки для просмотра таблицы с динамическими ячейками. Для отображения таблицы статических ячеек не обязательно иметь источник данных cellForRowAtIndexPath. Таким образом, вы можете безопасно удалить метод источника данных cellForRowAtIndexPath.

Проверить этот вопрос для более подробного объяснения: Storyboard static cells: dequeueReusableCellWithIdentifier returns nil

Или вы можете использовать супер методы, как указано здесь: UITableView with static cells without cellForRowAtIndexPath. How to set clear background?

0

Вам не нужно из очереди это, как вы сказали, что это только статические элементы.

Вместо:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

Использование:

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 

Успехов!

EDIT: слишком медленно!