2014-04-09 26 views
6

Mam widok tabeli, który skonfigurowałem tak, że gdy użytkownik dotknie wiersz, przeniesie się do nowego widoku na podstawie nazwy konkretnej komórki. Jednak po pierwszym kliknięciu komórki nic nie robi, a po kliknięciu następnej komórki działa tak, jakbym kliknęła pierwszą komórkę.Widok tabeli didSelectRowAtIndexPath, działa tylko po wybraniu drugiego kliknięcia.

Na przykład mam kask, kij i rękawiczki. Jeśli przycisnę Hełm, nic się nie dzieje. Następnie, jeśli wciśniesz Stick, zrobi to didSelectRowAtIndexPath dla hełmu, a nie dla drążka. Wszelkie sugestie, dlaczego tak się dzieje?

//Tapping to change on row 
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    NSLog(@"%@", cell.textLabel.text); 
    if([cell.textLabel.text isEqualToString:@"Helmet"]) 
    { 
     [self performSegueWithIdentifier:@"toHelmetView" sender:indexPath]; 
    } 
} 


//Segue control, fetch helmet and send it 
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"toHelmetView"]) 
    { 
     // Fetch the selected object 
     //EquipmentCategory *o = [_frc objectAtIndexPath:[self.tableView indexPathForSelectedRow]]; 

     // Configure the next view + controller 
     HelmetView *nextVC = (HelmetView *)segue.destinationViewController; 

     nextVC.title = @"Helmet"; 
     nextVC.model = self.model; 
     nextVC.h = [self.model helmetForPlayer:self.p]; 
    } 

} 

Odpowiedz

32

To dlatego, że realizowany didDeselectRowAtIndexPath zamiast didSelectRowAtIndexPath.

+1

Jestem zawstydzony, gdy mówię, ile razy natknąłem się na ten sam problem. – Stonz2

+0

Mam ten sam problem, ale mam poprawny func. CzySelectRowAt..Jak inny może to być? –

+0

: O, miałem ten sam problem –

Powiązane problemy