1

我正在使用其委托方法填充 UITableView。在某些情况下,我不想返回任何单元格。但是,以下委托函数要求我将 UITableViewCell 定义为返回类型。返回 nil 不起作用(参见代码示例中的 switch case)。

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"UITableViewCell"];

    switch (indexPath.section){
        case 0:
                switch (indexPath.row){
                    case 0:
                        if ([eventItemObject eventDescription]){
                            return cell;
                        } else {
                            return nil;
                        }
                        break;
                        ...
                    default:
                    break;
                }
            break;
            ...
        default:
        break;
    }

    return cell;
}

如何在某些情况下不返回任何单元格?

4

3 回答 3

4

我认为你不能这样做(当我错的时候请纠正我)。您必须在 cellForRow 方法中返回一个 UITableViewCell 实例。

尝试编辑您的tableView:numberOfRowsInSection方法。根据您的条件,只返回正确的号码。

于 2012-11-10T20:43:44.597 回答
1

您必须使用tableView:numberOfRowsInSectionor来处理这个问题numberOfSectionsInTableView:tableView

于 2012-11-10T20:46:59.037 回答
1

我认为您需要过滤您的数组以删除 [eventItemObject eventDescription] 将返回 false 的任何项目,然后使用该过滤后的数组来填充您的表。这样,您的 numberOfRowsInSection 和/或 numberOfSectionsInTableView 将返回正确的数字。

于 2012-11-10T23:11:06.550 回答