删除uitableview中的最后一个单元格会冻结其他部分

时间:2012-03-09 17:18:15

标签: ios cocoa-touch uitableview

我有一个简单的分组uitableview,带有导航栏和“编辑”导航栏项。 “编辑”按钮仅适用于第一部分,而表格的其他部分则完全不同(请参阅iPhone设置)。我的问题是删除表的这个特定部分的最后一个单元格。每当用户删除最后一个单元格时,我将从导航栏中删除“编辑”按钮(因为它不再适用...)。

所以我这样做:

- (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

 .....

    if ([section count] == 0) {
        self.navigationItem.rightBarButtonItem = nil;

 .....  
    }

 .....

}

问题是,现在其他部分不起作用,这意味着,我再也无法点击它们了,它们也没有反应。我认为这是因为我没有点击导航栏上的“完成”,因为在删除最后一个单元格后删除了这个,所以我基本上仍处于“编辑模式”(不确定我是否在这里......)。

在任何情况下,我都试图在删除最后一个单元格后手动调用setEditing:animated:但这没有帮助。

供参考:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {

NSLog(@"****************** entering setEditing:animated");

[super setEditing:editing animated:animated];
[tblSimpleTable setEditing:editing animated:animated];

}

对此的任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试过 UITableView * 方法 reloadSections:withRowAnimation: 之后

[tblSimpleTable setEditing:editing animated:animated];

在iOS 5上正常工作。可能会在较低版本上出错。