不要删除UITable的第一行

时间:2011-04-05 18:10:40

标签: ios uitableview core-data

我有一个由模型核心数据填充的UITable,我不希望用户可以删除表格的第一行,所以我这样做:

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

if (editingStyle == UITableViewCellEditingStyleDelete) {
    if (indexPath.row != 0) {
        NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
        [context deleteObject:[self.fetchedResultsController objectAtIndexPath:indexPath]];
        [self saveContext];
    }
    // Delete the managed object for the given index path

}   

}

我使用这个if(indexPath.row!= 0),它是对的吗?我尝试,如果我在编辑模式下推删除不会发生什么......它是对还是有更好的方法?

1 个答案:

答案 0 :(得分:1)

此代码可以使用,但我认为这是糟糕的UI设计。我不认为用户会理解他们无法删除第一行。更有可能的是,他们会认为该应用无法进入编辑模式。

接口语法教导用户假设所有行都相同且行为相同。有一个特殊行会强制用户停止并思考他们选择了哪一行,然后才能预测选择编辑会产生什么效果。让用户必须跟踪应用状态,就像糟糕的UI设计一样。

如果您对第一行有一些特殊之处,您可能希望将该数据/函数放在tableview标题而不是行中。