表视图didSelectRowAtIndexPath,仅在选择第二次单击后才有效

Jor*_*dan 6 cocoa-touch objective-c uitableview ios

我有一个表视图,我已配置,以便当用户点击该行时,它将根据特定单元格的名称移动到新视图.但是,当我第一次单击一个单元格时,它什么都不做,当我单击下一个单元格时,它就像我点击了第一个单元格一样.

例如,我有头盔,棍子和手套.如果我按下头盔,没有任何反应.然后,如果我按下Stick,它将为头盔而不是Stick执行didSelectRowAtIndexPath.有关为什么会发生这种情况的任何建议?

//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];
    }

}
Run Code Online (Sandbox Code Playgroud)

Mar*_*n R 35

那是因为你实现了didDeselectRowAtIndexPath而不是 didSelectRowAtIndexPath.