Je rencontre un problème avec une table et affiche une autre vue lorsque l'utilisateur touche une cellule de tableau. J'utilise un UITabBarController pour la vue principale pour montrer différentes vues. J'utilise ensuite un UINavigationController lorsque l'utilisateur sélectionne une vue UITableView pour afficher la vue suivante à partir de la sélection de cellule de table.UINavigationController, UITableView et ne pas afficher la vue suivante
Mon problème est le suivant: lorsqu'ils sélectionnent la cellule de tableau, la cellule est mise en surbrillance et la vue suivante n'apparaît pas. J'utilise IB. Tous les exemples que j'ai trouvés le font de la même manière que moi, sauf que les exemples fonctionnent!
J'ai les contrôleurs chargés dans un NSMutableArray avec un dictionnaire. J'ai également essayé ce code en créant directement un contrôleur de vue plutôt que d'utiliser l'élément de tableau. Mêmes résultats ....
J'ai vérifié le contrôleur cible (Calc1ViewController) pour m'assurer qu'il n'y avait aucun problème avec le contrôleur. En l'affichant directement, le contrôleur (Calc1ViewController) s'affiche correctement.
Voici un code .....
L'initialisation du contrôleur de vue dans le dictionnaire:
Calc1ViewController *calc1ViewController = [[Calc1ViewController alloc] init];
[menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys:
NSLocalizedString(@"SSC - page 1",@""), @"title",
calc1ViewController, @"viewController",
nil]];
[calc1ViewController release];
J'ai aussi essayé cela sans l'aide du dictionnaire - la création d'un contrôleur de vue en place du [[menuList objectAtIndex: ...]; ligne - en créant le contrôleur de vue comme ceci:
Calc1ViewController *targetViewController = [[Calc1ViewController alloc] init];
// the table's selection has changed, switch to that item's UIViewController
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIViewController *targetViewController = [[menuList objectAtIndex: indexPath.row] objectForKey:@"viewController"];
[[self navigationController] pushViewController:targetViewController animated:YES];
targetViewController = nil;
}
Le contrôleur de navigation est définie dans le AppDelegate et connecté au RootViewController à travers IB.
Lorsque je sélectionne une ligne de table, il apparaît dans le débogueur que le code pushViewController est exécuté, mais la vue suivante n'apparaît pas. Voici un exemple:
alt text http://thecoolestcompany.com/ssc-table-view.jpg
Toutes les idées?
Ajout d'un peu plus de code - s'il y a du code supplémentaire pour aider, faites le moi savoir et je vais certainement l'ajouter - merci! –