UISearchBarDelegateを実装するUITableViewがあります。self.searchDisplayController.searchResultsTableViewに2つのセクションがあり、返された結果の数でこれらのUILabelを更新したいと思います。これを行うための最良の方法は何ですか?
CoreDataを使用しています。
どうも
UISearchBarDelegateを実装するUITableViewがあります。self.searchDisplayController.searchResultsTableViewに2つのセクションがあり、返された結果の数でこれらのUILabelを更新したいと思います。これを行うための最良の方法は何ですか?
CoreDataを使用しています。
どうも
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
)。FirstSectionTitle
SecondSectionTitle
- (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;
}
}