UITableView: Lidar com a seleção de células em uma tabela mista de células exibir células estáticas e dinâmicas

Eu estou tentando misturar células dinâmicas e estáticas em uma exibição de tabela agrupada: eu gostaria de obterduas seções com células estáticas no topo seguido por umseção de células dinâmicas (por favor, consulte a imagem abaixo). Eu configurei o conteúdo da visualização de tabela paracélulas estáticas.

Editar

Com base no conselho da AppleFreak, alterei meu código da seguinte forma:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell;
    if (indexPath.section <= 1) { // section <= 1 indicates static cells
        cell = [super tableView:tableView cellForRowAtIndexPath:indexPath]; 
    } else { // section > 1 indicates dynamic cells
        CellIdentifier = [NSString stringWithFormat:@"section%idynamic",indexPath.section];
        cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    }
return cell;

}

No entanto, meu aplicativo falha com a mensagem de erro

Encerrando o aplicativo devido à exceção não identificada 'NSInternalInconsistencyException', motivo: 'UITableView dataSource deve retornar uma célula de tableView: cellForRowAtIndexPath:'

para a seção 0 e linha 0. A célula retornou decell = [super tableView:tableView cellForRowAtIndexPath:indexPath] para a seção 0 e a linha 0 énil.

o que está errado com meu código? Poderia haver algum problema com minhas saídas? Eu não defini nenhuma saída porque eu estou subclassificandoUITableViewController e, supostamente, nenhum outlet para tableview deve ser definido (?). Alguma sugestão sobre como melhor fazê-lo?

Editar II

Recriei minha cena no storyboard (consulte minha captura de tela atualizada acima) e reescrevi o controlador de visualização para iniciar a partir de uma nova base. Eu também li a descrição no fórum da Apple como applefreak sugeriu. No entanto, eu corro no meu primeiro problema com o métodonumberOfSectionsInTableView:tableView, em que eu incremento o número de seções estáticas (dois) por um.

  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return [super numberOfSectionsInTableView:tableView] + 1 ; }

O aplicativo caiu com a mensagem de erro:

Encerrando o aplicativo devido à exceção não capturada 'NSRangeException', motivo: '*** - [__ NSArrayI objectAtIndex:]: índice 2 além dos limites [0 .. 1]'

Por que esse código não funciona para mim, embora eu tenha seguido as recomendações da Apple e applefreak? É possível que o tableView tenha mudado um pouco no iOS 6?

Solução: Eu tenho isso para trabalhar agora usando o exemplo de código AppleFreaks na sua resposta abaixo. Obrigado, AppleFreak!

Editar III: Seleção de Célula:

Como eu posso lidarseleção celular em uma exibição de tabela de célula mista (células estáticas e dinâmicas)? Quando eu ligosuper e quando eu ligoself tableView? Quando eu uso

[[super tableView] selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]

e tente verificar os caminhos de índice selecionados com:

UITableView *tableView = [super tableView];
if ( [[tableView indexPathForSelectedRow] isEqual:customGrowthIndexPath] ) { .. }

Eu recebo um valor de retorno denil.

Como não consigo encontrar a fonte do meu erro, eu realmente aprecio sua ajuda

questionAnswers(6)

yourAnswerToTheQuestion