0

UISearchBarDelegateを実装するUITableViewがあります。self.searchDisplayController.searchResultsTableViewに2つのセクションがあり、返された結果の数でこれらの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つのプロパティを想定していますNSString)。FirstSectionTitleSecondSectionTitle

- (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 に答える