Comment trouver indexPath pour le bouton accessoire tapé dans la tableVoir

J'ai simple UITableView avec une section et en quelques lignes. Lorsque l'utilisateur clique sur la cellule accessoire bouton (qui est connecté avec detailsSegue. Je veux savoir ce que la cellule de la ligne a été. De sorte que je peux choisir, à droite de l'objet de mon tableau et de l'affecter à la variable de la vue suivante.

J'ai utilisé la méthode du délégué tableview:accessoryButtonTappedForRowWithIndexPath: et affecté indexPath valeur de ma propriété privée myRow. Que dans prepareForSegue:sender: méthode que j'ai utilisé mon self.myRow.row valeur pour sélectionner le bon objet, de la matrice.

Mon problème est que ces deux méthodes semble exécuter dans un ordre incorrect. À partir de la NSLog je peux voir que prepareForSegue:sender: méthode est exécuté en premier et mon délégué de la méthode est l'évolution de la valeur de self.myRow après.

Donc prepareForSegue:sender: méthode est toujours en passant mauvais objet à la vue suivante (celle qui a été tapé précédemment).

Désolé pour mon anglais, les gars. Merci pour l'aide à l'avance.

-(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
    self.myRow = indexPath;
    NSLog(@"tapped button at row: %i",self.myRow.row); 
}

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if([segue.identifier isEqualToString:@"addSegue"]) {
        AddViewController *avc = segue.destinationViewController;
        avc.delegate = self;
    }
    else if ([segue.identifier isEqualToString:@"detailsSegue"]) {
        NSLog(@"Segue row: %i",self.myRow.row);
        Annotation *annotation = [self.viewsList objectAtIndex:self.myRow.row];
        NSLog(@"Segue annotation object: %@",annotation.title);
        DetailsViewController *dvc = segue.destinationViewController;
        dvc.wikiKey = annotation.title;
    }
}

source d'informationauteur Guferos