iOS:未调用 didSelectRowAtIndexPath

标签 ios objective-c uitableview ios7

我在 viewController 中有两个 UITableView。两者都有不同的标签。带有标签 0 的 UITableview 是可编辑的,而标签 1 是不可编辑的。我的问题是当在带有标签 1 的 UITableview 中选择行时,它没有被调用。但是当我滑动 didSelectRowAtIndexPath 时,标签 1 被调用。

这是我的代码,

    - (BOOL) tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
    {
            if (tableView.tag == 0) {
                return YES;
            }
            else if (tableView.tag == 1)
            {
                return NO;
            }
        return NO;
    }


- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (tableView.tag == 0)
    {
    if (editingStyle == UITableViewCellEditingStyleDelete)
       {
           //My stuff
       }
    }
    else editingStyle = UITableViewCellEditingStyleNone;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (tableView.tag == 1)
    {
        switch (indexPath.row)
        {
            case 0:
                [self.navigationController popToRootViewControllerAnimated:YES];
                break;
            case 1:
                [self performSegueWithIdentifier:@"mapPageSegue" sender:nil];
                break;
            case 2:
                [self closeMenuTable];
                [self  listenMusic];
                break;
            default:
                break;
        }
    }
}

最佳答案

根据您的评论,我猜您没有设置 UITableViewDelegate,因为 tableView:didSelectRowAtIndexPath: 是该协议(protocol)的一种方法。

无论如何,我会设置一个断点并进行调试。这才是深入问题的正确方法。

此外,我不依赖于 tag,而是依赖于两个表的引用(通过 IB 导出、属性或 ivar)。例如。

if(tableView == self.myFirstTable) {
    // do stuff here
} else {
    // do other stuff here
} 

关于iOS:未调用 didSelectRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20998346/

相关文章:

ios - iOS 获取请求的最佳实践

ios - cell.detailTextLabel.text 为 NULL

ios - UITextField 在 tableviewcell 上单击显示键盘

ios - 关于应用程序图标

ios - 需要随着底部列表滚动移动顶部红色选择器

ios - iOS:xCode无法识别新的类方法

ios - 创建后如何更改IBAction事件类型?

ios - 具有自定义控件的 UITableView,当在单元格上按下特定按钮时更改 UILabel 的值

ios - 具有多个嵌入 segues 的 ContainerView

ios - 不要删除 UITable 的第一行