2011-04-08 3 views
1

C'est vraiment frustrant car j'ai bricolé avec les versions précédentes de Xcode et je l'ai fait auparavant mais en jouant avec une nouvelle application maintenant, ça ne marche pas pour une raison quelconque.iOS/Xcode 4: La vue ne se chargera pas

J'ai l'application ouverte à un UITableView et je veux le charger dans un détail UIView une fois que je sélectionne une cellule. Cependant, quand je choisis une cellule dans le simulateur d'iPhone, il met juste en évidence la cellule bleue et ne charge pas la vue.

Voici le code que je utilise le la RootViewController:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
WorkoutViewController *workoutViewController; 
workoutViewController = [[WorkoutViewController alloc] initWithNibName:@"WorkoutViewController" bundle:nil]; 
workoutViewController.workoutName = [workouts objectAtIndex:indexPath.row]; 
[self.navigationController pushViewController:workoutViewController animated:YES]; 
[workoutViewController release]; 
workoutViewController = nil; 

J'ai la vue liée au propriétaire du fichier dans le fichier WorkoutViewController.xib. Lorsque je mets un point d'arrêt sur @implementation WorkoutViewController, il arrive à ce point d'arrêt mais il va à la ligne @synthesize et saute tout de suite à [self.navigationController ... etc]; et ne retourne jamais au fichier WorkoutViewController.m.

+0

Je ne vois rien de mal dans ce que vous faites. Peut-être que nous avons besoin de voir un peu plus de code. Le didSelectRowAtIndexPath est déclenché (comme l'indique le point d'arrêt) et la raison pour laquelle il va à @synthesize est que je suppose que vous avez workoutName en tant que propriété dans le workoutViewController. – Tobias

Répondre

1

Je suppose que vous n'avez pas défini ViewController comme le délégué de TableView. Pour vérifier, ouvrez votre fichier xib ViewController et faites un clic droit sur FilesOwner. Sous Referencing Outlet vous avez généralement à la fois delegate et data source » connecté à votre TableView. Si ce n'est pas le cas, faites glisser New Referencing Outlet à votre TableView.

Si je me trompe, et ils sont tous connectés, vous pouvez mettre un point d'arrêt au début de votre méthode didSelectRowAtIndexPath. le débogueur arrête là, une fois que vous sélectionnez une ligne?

Il pourrait également être utile de mentionner qu'un point d'arrêt à @implementation n'a généralement pas beaucoup de sens, vous préférez vouloir placer dans une méthode comme init. En outre, même si vous utilisez Xcode 4 maintenant, il est peu probable que ce soit la cause de votre problème, il ressemble plus à une mise en œuvre e.

J'espère que cela aide, si vous avez besoin d'aide, faites le moi savoir!

+0

Quelqu'un pourrait-il m'éclairer pourquoi cela a été rejeté? Merci – Phlibbo

1

Doh! Problème résolu. J'avais oublié de mettre le RootViewController dans un contrôleur de navigation sur MainWindow.xib. Appréciez les réponses.

Questions connexes