基于SegmentedControl有条件地重新加载UITableView

时间:2010-10-23 20:45:28

标签: iphone objective-c uitableview ios4 reloaddata

当我点击按钮时,我想根据分段控件的值有条件地重新加载表格视图。

所以在我的buttonTapped方法中,我有这个代码随机选择一个数组项。在else块中,我想从数组中删除所选项目,以防止再次选择相同的项目,目前我将其从数组中删除...

但是我希望能够在点击按钮之前将应用程序返回到状态,可能是通过创建数组的-mutableCopy然后从中删除项目。

我有什么可能的选择来指示无法再次选择某个项目?变灰了?颜色变化?删除行?

    if (selectionControl.selectedSegmentIndex == 0) {
        int r = arc4random() % [[[APP_DELEGATE itemsDictionary] objectForKey:category] count];
        NSLog(@"%i",[[[APP_DELEGATE itemsDictionary] objectForKey:category] objectAtIndex:r]);
    } else {
        //copyOfArray = [APP_DELEGATE.....]mutableCopy]; // Maybe?
        int r = arc4random() % [[[APP_DELEGATE itemsDictionary] objectForKey:category] count];
        NSLog(@"%i",[[[APP_DELEGATE itemsDictionary] objectForKey:category] objectAtIndex:r]);
    }
    [[[APP_DELEGATE itemsDictionary] objectForKey:category] removeObjectAtIndex:r];


    //[copyOfArray removeObjectAtIndex:r]; // Maybe?
    [self.tableView reloadData];
}

在每个tableView方法中,我需要在从APP_DELEGATE或副本返回值之前检查selectionControl的状态。

感谢。

1 个答案:

答案 0 :(得分:0)

我认为我要做的是访问UITableCellView的“textLabel”成员,并将文本颜色设置为灰色。

你可以实现tableView:willSelectRowAtIndexPath:当按下该行时返回NIL - 这将使得实际上不能选择行。