# tableView la méthode didSelectRowAtIndexPath n'est pas appel



## Su4p (19 Mars 2012)

Bonjour, 
Je vais d'abord me présenter je suis développeur  (PHP, Java , .net , C) et depuis peu je m&#8217;intéresse à objective-C,  j'essaie de développer une application pour faire la présentation d'un  congrès.
Comme le titre l'indique j'ai une tableView que je remplis à partir d'un fichier XML tout cela fonctionne très bien.
Ce  que je ne comprends pas (surement parce que je n'ai pas le recul  nécessaire) c'est pourquoi la méthode didSelectRowAtIndexPath n'est pas  appelée lorsque je sélectionne une ligne (la ligne est bien sélectionner  et est bien afficher en bleu). 
Voici la méthode qui remplis mon tableView et qui fonctionne très bien.


```
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additionl setup after loading the view, typically from a nib.
    NSString *path = [[NSBundle mainBundle] pathForResource:@"exposants" ofType:@"plist"];
    NSDictionary *root = [[NSDictionary alloc] initWithContentsOfFile:path];
    NSArray *arrayFromDict = [root objectForKey:@"root"];
    
    NSEnumerator *enumerator = [arrayFromDict objectEnumerator] ;
    NSDictionary *object;
    tabExposants = [[NSMutableArray alloc] init];
     
    while(object = [enumerator nextObject]){
        Exposant *monExposant = [[Exposant alloc] initWithDictionary:object];
        [tabExposants addObject:monExposant];
        //[monExposant release];
    }
    

    
    //[root release];
```

Et voici la méthode qui n'est pas appelé 
	

	
	
		
		

		
			







```
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSLog(@"ok");
    VC_page_exposant_detail *page_exposant_detail = [[VC_page_exposant_detail alloc ]initWithNibName:@"VC_page_exposant_detail" bundle:nil];
    page_exposant_detail.monExposants = [self.tabExposants objectAtIndex:indexPath.row];
    
    [self.navigationController pushViewController:page_exposant_detail animated:YES];
    
}
```
Help ?


----------



## Nyx0uf (19 Mars 2012)

Ta classe est-elle delegate de la tableView ?


```
tableView.delegate = self;
```


----------



## Su4p (19 Mars 2012)

Je pense que je peux te répondre non.
Ma vue a été créée à partir d'UIviewController sur laquelle j'ai déposé un tableView.
Dis moi si je suis à coté de la plaque.


----------



## Nyx0uf (19 Mars 2012)

Et bha dans ton viewDidLoad tu mets le code que j'ai mis avant, ou tu passes par interface builder.


----------



## Su4p (19 Mars 2012)

tabExposants ne possède pas de propriété delegate puisque c'est un NSMutableArray et je n'ai pas d'objet tableView.

---------- Nouveau message ajouté à 16h48 ---------- Le message précédent a été envoyé à 15h41 ----------

Donc j'ai avancé en reliant dans xib le delegate au file's owner j'ai bien le NSLog(@"ok");. 
Problème suivant [self.navigationController pushViewControllerage_exposant_detail animated:YES]; ne fonctionne pas car self.navigationController renvoie NULL.
Une piste ?


----------



## Nyx0uf (19 Mars 2012)

Ouais, c'est que ton ViewController n'est pas contenu dans un UINavigationController :>


----------



## Su4p (19 Mars 2012)

Il est dans un tabBarController, tu crois que tu peux toujours m'aider ? Voici le code de mon AppDelegate.m :

```
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    UIViewController *viewController1, *viewController2, *viewController3, *viewController4, *viewController5;
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        viewController1 = [[VC_page_accueil alloc] initWithNibName:@"VC_page_accueil_iphone" bundle:nil];
        viewController2 = [[VC_page_exposants alloc] initWithNibName:@"VC_page_exposants_iphone" bundle:nil];
        viewController3 = [[VC_page_sessions alloc] initWithNibName:@"VC_page_sessions_iphone" bundle:nil];
        viewController4 = [[VC_page_agenda alloc] initWithNibName:@"VC_page_agenda_iphone" bundle:nil];
        viewController5 = [[VC_page_plan alloc] initWithNibName:@"VC_page_plan_iphone" bundle:nil];
    } else {
        viewController1 = [[VC_page_accueil alloc] initWithNibName:@"FirstViewController_iPad" bundle:nil];
        viewController2 = [[VC_page_exposants alloc] initWithNibName:@"SecondViewController_iPad" bundle:nil];
    }
    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:
                                             viewController1, 
                                             viewController2, 
                                             viewController3,
                                             viewController4,
                                             viewController5,
                                             nil];
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}
```


----------



## tatouille (22 Mars 2012)

on t'aidera le jour ou tu ecriras du code pour l'instant c'est du schmug


----------

