2011-07-10 3 views
0

Je suis un débutant à la programmation et j'ai une application basée sur la vue qui recueille des données à partir d'une base de données SQLite et l'affiche dans un tableau. J'ai beaucoup de travail mais je ne peux pas obtenir l'application pour afficher une vue détaillée une fois qu'un élément sur la table est sélectionné. Voici mon code si quelqu'un peut aider.Vue détaillée n'apparaissant pas de la vue de table

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

    if (dvController == nil) 
     dvController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle: nil]; 

    Clubs *clubObj = [appDelegate.clubArray objectAtIndex:indexPath.row]; 

    [clubObj hydrateDetailViewData]; 

    dvController.clubObj = clubObj; 

    [self.navigationController pushViewController:dvController animated:YES]; 

} 

-(void)viewDidLoad { 
[super viewDidLoad]; 

appDelegate = (ClubFindAppDelegate *) [[UIApplication sharedApplication] delegate]; 
self.title = @"Back"; 

}

Toute aide serait appreiciated. Merci

+0

gardez-vous un oeil sur le nombre de retenir de votre clubObj? –

+0

Désolé ce que cela signifie? @calvinBhai – Wayne

+0

@Wayne thelaws est juste dans viewBased contrôleur de navigation de modèle n'est pas là. Vous devez démarrer votre application avec le modèle navigationBased qui contient un contrôleur de navigation et tableView. –

Répondre

1

Si vous avez démarré avec une application basée sur la vue, il se peut que votre contrôleur de vue n'ait pas d'instance self.navigationController disponible. Votre contrôleur de vue doit se trouver dans une pile de contrôleurs de navigation pour pousser d'autres contrôleurs de vue.

Pour activer une vue application basée sur un avec un contrôleur de navigation tout ce que vous avez à faire est de modifier le délégué de l'application comme suit:

// view based app template code 
self.window.rootViewController = self.viewController; 

devient

UINavigationController * controller = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 
self.window.rootViewController = controller; 

Vous pouvez également enregistrez également le fichier navigationController en tant que propriété du délégué d'application.

+0

Si vous n'utilisez pas la méthode rootViewController pour définir la vue comme dans mon édition, remplacez la deuxième ligne par: [self.window addSubview: controller.view]; – thelaws

+0

J'ai ajouté un contrôleur de naigation à appDelegate comme indiqué dans mon code ci-dessous. Comment connecter la vue détaillée au contrôleur '[self.window addSubview: navigationController.view]; [self.window addSubview: viewController.view]; [self.window makeKeyAndVisible]; retourner YES; } 'Je pense que c'est correct parce que je n'ai pas besoin du contrôleur de navigation pour mettre en place la table en premier lieu (qui fonctionne correcytly) @thelaws @Rahul Vyas – Wayne

+0

@Wayne s'il vous plaît voir ma réponse éditée pour la façon de créer votre viewController à l'intérieur d'un contrôleur de navigation. En général, vous ne devez pas ajouter deux contrôleurs de vue à votre fenêtre. – thelaws

Questions connexes