0

我有一个实现 UISearchBarDelegate 的 UITableView。我的 self.searchDisplayController.searchResultsTableView 中有两个部分,并希望使用返回的结果数更新其中的 UILabel。做这个的最好方式是什么?

我正在使用 CoreData。

谢谢

4

1 回答 1

0

您需要在UITableView数据源方法中处理适当的值获取- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section。然后,一旦您获得新值(并填充您将在该方法中使用的任何源),只需调用[myTableView reloadData].

因此,假设您将标题标题存储在一个名为HeaderTitles. (这假设你有一个 NSMutableArray/NSArray 已经填充了你的部分标题标题

// This is a method I made up, which is where you get the data returned...
- (void)gotNewTitle:(NSString *)title forSection:(NSUInteger)section {
    [[self HeaderTitles] replaceObjectAtIndex:section withObject:title];
    [[self myTableView] reloadData];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return [[self HeaderTitles] objectAtIndex:section];
}

如果您不想使用 NSArray,因为您肯定有 2 个部分,您可以使用以下方法(假定 2 个属性,两者NSStringFirstSectionTitleSecondSectionTitle

- (void)gotNewTitle:(NSString *)title forSection:(NSUInteger)section {
switch (section) {
    case 0:
        [self setFirstSectionTitle:title];
        break;
    case 1:
        [self setSecondSectionTitle:title];
        break;
    default:
        break;
}
[[self myTableView] reloadData];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    switch (section) {
        case 0:
            return [self FirstSectionTitle];
            break;
        case 1:
            return [self SecondSectionTitle];
            break;
        default:
            return @"";
            break;
    }
}
于 2012-05-06T20:35:34.863 回答