ios - TableView didSelectRowAtIndexPath,仅在选择第二次单击后有效

标签 ios objective-c cocoa-touch uitableview

我有一个 TableView ,我已对其进行配置,以便当用户点击该行时,它会根据特定单元格的名称移动到新 View 。但是,当我第一次单击一个单元格时它什么也不做,而当我单击下一个单元格时,它的行为就像我单击了第一个单元格一样。

例如,我有 Helm 、棍子和手套。如果我按下 Helm ,什么也不会发生。然后,如果我按下 Stick,它将为 Helm 而不是 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];
    }

}

最佳答案

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

关于ios - TableView didSelectRowAtIndexPath,仅在选择第二次单击后有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22972107/

相关文章:

ios - 如何使用 iCloud 在我的应用程序之间同步 UIdocument 文件(保存在本地文档目录中)?

ios - 访问实例变量导致保留周期?

objective-c - 使用 Objective-C block

iphone - UITextView 上的 resignFirstResponder - 减缓键盘消失

ios - 在 iOS 中单击全屏按钮时,可以强制 MPMoviePlayerController 横向显示

ios - 共享后执行 Segue - Objective-C (Xcode)

iphone - iOS 4.x 设备覆盖

ios - 使用 CGRect 裁剪图像

ios - 使用通知执行 segue 后 ViewController deinit

ios - GLKit 深度测试不起作用