iOS - 目标C - UITablview部分禁用

时间:2014-02-07 11:12:10

标签: ios objective-c uitableview

我在tableview中有三个部分。三节电池包含3个不同的视图控制器。当用户有机会在tableview中点击2个不同的部分时,我们会因后退导航崩溃而崩溃。 UINavigationController异常。我们如何禁用该部分以避免不止一次的干扰。

3 个答案:

答案 0 :(得分:0)

您应该忽略您不想处理的细胞部分:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([indexPath.section == 1) // Don't do anything where row in section 1 is pressed
        return nil;
    else
    {
        //handle cell selection
    }
}

答案 1 :(得分:0)

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
   //once you get control in this section disable the table for 1 second than in this duration your navigation controller will pop and user will not able to tap second time

    [self performSelector:@selector(enableTable) withObject:nil afterDelay:1.0];
    tbl.userInteractionEnabled=NO; 

}

-(void)enableTable
{
   tbl.userInteractionEnabled=YES;
}

答案 2 :(得分:0)

有一个表视图委托方法tableView:willSelectRowAtIndexPath:

OS会在选择单元格之前调用该方法。

实现该方法,如果索引路径中的部分是您不想选择的部分,则返回nil。

如果您的章节编号定义为K_SECTION_TO_IGNORE,您的代码可能如下所示:

#define K_SECTION_TO_IGNORE 1

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
  if (indexPath.section == K_SECTION_TO_IGNORE)
    return nil;
  else
    return indexPath;
}