J'ai créé un programme UITabBarController
qui est chargé dans mon délégué App comme ceci:Impossible d'obtenir UITableViewController secondaire pour afficher dans une UITabBarController
- (void)applicationDidFinishLaunching:(UIApplication *)application {
tabBarController = [[UITabBarController alloc] init];
myTableViewController = [[MyTableViewController alloc] init];
UINavigationController *tableNavController = [[[UINavigationController alloc] initWithRootViewController:myTableViewController] autorelease];
myTableViewController.title = @"Tab 1";
[myTableViewController release];
mySecondTableViewController = [[MySecondTableViewController alloc] init];
UINavigationController *table2NavController = [[[UINavigationController alloc] initWithRootViewController:mySecondTableViewController] autorelease];
mySecondTableViewController.title = @"Tab 2";
[mySecondTableViewController release];
tabBarController.viewControllers = [NSArray arrayWithObjects:tableNavController, table2NavController, nil];
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
}
Maintenant, la question que j'ai est que je peux entrer dans le ne voit aucun problème, mais lorsque j'essaie de cliquer sur un élément de la vue tabulaire, je n'arrive pas à voir apparaître un tableau secondaire dans un onglet. Les onglets fonctionnent très bien, juste les vues secondaires. J'utilise le code ci-dessous dans mon myTableViewController à courir lors de la sélection d'une ligne spécifique (le code atteint la ligne d'aide et accidents) ...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
// this gets the correct view controller from a list of controllers
SecondaryViewController *svc = [self.controllers objectAtIndex:row];
/*** HELP NEEDED WITH THIS LINE ***/
[self.navigationController pushViewController:svc animated:YES];
}
Autrement dit, je suis en train de changer de vue sur la nouveau contrôleur de vue tout en gardant les onglets disponibles et en utilisant la navigation pour aller et venir (comme dans l'App iTunes).
Ces objets sont initialisés SecondaryViewController ... ... dans MyTableViewController viewDidLoad Je: \t SecondaryViewController * = svc [[SecondaryViewController alloc] initWithStyle: UITableViewStylePlain]; \t svc.title = @ "svc"; \t [array addObject: svc]; \t [libération de svc]; \t \t self.controllers = array; et cet objet est renvoyé lorsque je reçois le contrôleur du tableau self.controllers. La valeur n'est pas nulle (elle est donc créée) et le titre est correctement défini. Juste FYI SecondaryViewController sous-classes UITableViewController et auto-délégués –
Hmmm ... semble que nous avons le même livre en face de nous (début de développement de l'iPhone 3) ;-) Je ne peux pas détecter les erreurs dans votre code. Y a-t-il des messages d'erreur du compilateur? –
Je viens d'essayer d'exécuter le code en créant l'objet svc directement (au lieu de le sortir d'un tableau) et ça marche ... donc il y a quelque chose avec l'extraction de l'objet du tableau qui n'est pas tout à fait correct. –