2010-04-27 7 views
0

À l'heure actuelle, j'ai un UITableView indexé qui va à une vue détaillée mais je veux qu'il passe à un autre UITableView, puis une vue détaillée.connect UITableView + UITableView

mon code comme ceci:

` - (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {

displyAnnController *anController = [[displyAnnController alloc] initWithNibName:@"AnnView" bundle:[NSBundle mainBundle]]; 

DetailViewController *dvController = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped]; 

switch (indexPath.row) { 
    case 0: 
     [self.navigationController pushViewController:anController animated:YES]; 
     [anController release]; 
     anController = nil; 
     break; 
    case 1: 
     [self.navigationController pushViewController:dvController animated:YES]; 
     [dvController release]; 
     dvController = nil; 
     break; 
    default: 
     break; 
}` 

et quand je presse la cellule avec l'index 0 dans le simulateur, le programme est crash!

quel est le problème? plaidoyers me aident ..


Non, je ne l'emportait pas sur le -initWithNibName, je viens de l'utiliser comme de la même façon, mais de pousser à ControlView pas TableView.Also, aucune erreur dans la console de débogage. et j'ai essayé de libérer les contrôleurs après le bloc de commutation, mais le programme s'écraser encore :(De toute façon, il est un travail quand j'écris:

displyAnnController *anController = [[displyAnnController alloc] initWithStyle:UITableViewStyleGrouped]]; 

au lieu de:

displyAnnController *anController = [[displyAnnController alloc] initWithNibName:@"AnnView" bundle:[NSBundle mainBundle]] 

temporairement, je accepter cela juste pour terminer mon travail! mais j'espère trouver un exemple d'aide, car pas besoin d'être en tant que groupe.

remercie tous pour l'aide et des recommandations.

Répondre

0

Afficher la console de débogage() et voir ce qu'est l'erreur.

Etes-vous en train de remplacer le message -initWithNibName sur displyAnnController? Ou le message -viewDidLoad?

Vous avez également une fuite de mémoire. Vous avez toujours +alloc les deux contrôleurs, mais seulement -release l'un d'entre eux. Ne pas +alloc votre contrôleur sauf si vous allez l'utiliser réellement.

+0

Oui, libérez vos contrôleurs de vue après le bloc de commutation. & pourquoi ne pas créer vos viewcontrollers dans -viewDidLoad dans cette vue controller les ajouter dans un tableau et utiliser objectAtIndex: row pour pousser le contrôleur de vue respectif sur le navigationstack dans didSelectRowAtIndexPath: method. Et comme Branon a dit vérifier votre console sur ce qui s'est vraiment mal passé. –

0

Je pense que votre application plante parce que vous avez d'abord publié la vue et ensuite vous la faites nil.Si elle est publiée une fois, elle ne reçoit pas la référence pour la rendre nulle. Essayez-la une fois.Il peut fonctionner.