我有一个实现 UISearchBarDelegate 的 UITableView。我的 self.searchDisplayController.searchResultsTableView 中有两个部分,并希望使用返回的结果数更新其中的 UILabel。做这个的最好方式是什么?
我正在使用 CoreData。
谢谢
我有一个实现 UISearchBarDelegate 的 UITableView。我的 self.searchDisplayController.searchResultsTableView 中有两个部分,并希望使用返回的结果数更新其中的 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;
}
}