UITableView: la Poignée de sélection de cellule dans une cellule mixte table de vue statique et dynamique des cellules

Je suis en train de mélange statique et dynamique des cellules regroupés dans un tableau: je voudrais obtenir un deux sections avec des cellules statiques au sommet, suivi par un section de dynamique des cellules (veuillez vous référer à la capture d'écran ci-dessous). J'ai mis le tableau d'affichage du contenu de cellules statiques.

UITableView: la Poignée de sélection de cellule dans une cellule mixte table de vue statique et dynamique des cellules

Modifier

Basé sur AppleFreak conseils, j'ai modifié mon code comme suit:

- (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;

}

Cependant, mon application se bloque avec le message d'erreur

Résiliation d'application en raison de uncaught exception
'NSInternalInconsistencyException', la raison: 'UITableView source de données
doit retourner une cellule de tableView:cellForRowAtIndexPath:'

pour la section 0 et la ligne 0. La cellule retourné à partir de cell = [super tableView:tableView cellForRowAtIndexPath:indexPath] pour la section 0 et la ligne 0 est nil.

Quel est le problème avec mon code? Pourrait-il y avoir des problèmes avec mes points de vente? Je n'ai pas mis toutes les sorties parce que je suis sous-classement UITableViewController et soi-disant, ne sont pas prises pour tableview (?). Toutes les suggestions sur la meilleure façon de le faire?

UITableView: la Poignée de sélection de cellule dans une cellule mixte table de vue statique et dynamique des cellules

Edition II

J'ai recréé ma scène dans un scénario (veuillez vous référer à ma mise à jour de la capture d'écran ci-dessus) et réécrit le point de vue du contrôleur afin de démarrer à partir d'une nouvelle base. J'ai aussi lu la description dans Apple forum applefreak suggéré. Cependant, je lance dans mon premier problème avec la méthode numberOfSectionsInTableView:tableView, dans lequel je incrémenter le nombre de statique sections (deux) par un.

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

L'application s'est écrasé avec le message d'erreur:

Résiliation d'application en raison de uncaught exception 'NSRangeException', la raison:
'*** -[__NSArrayI objectAtIndex:]: indice 2 au-delà des limites [0 .. 1]'

Pourquoi ce code ne fonctionne pas pour moi, même si j'ai suivi d'Apple et applefreak recommandations? Il est possible que la tableView a un peu changé dans iOS 6?

Solution: j'ai eu ce travail maintenant à l'aide de AppleFreaks exemple de code dans sa réponse ci-dessous. Merci, AppleFreak!

Modifier III: Sélection de Cellule:

Comment puis-je gérer de sélection de cellule dans un mélange (dynamique et statique des cellules) cellule de vue de la table?
Quand dois-je appeler super et quand dois-je appeler self tableView?
Lorsque j'utilise

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

et essayez de vérifier l'index sélectionné chemins avec:

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

J'obtiens une valeur de retour de nil.

Que je ne peux pas trouver la source de mon erreur, je serait vraiment reconnaissant de votre aide

Avez-vous inscrire à la plume par la classe doc? Important: vous devez Vous inscrire à une classe ou à la plume de fichier à l'aide de la registerNib:forCellReuseIdentifier: ou registerClass:forCellReuseIdentifier: méthode avant l'appel de cette méthode".

OriginalL'auteur AlexR | 2012-10-12