所以我不知道这是怎么回事,或者如何修复它,但是我的UISearchDisplayController的普通 tableView问题显示了带有分组单元格的搜索结果。
我有一个带有几个名字的dataSource数组,一个遍历dataSource数组的tableData数组,并添加了适合searchText的所有条目,然后根据它是哪个tableView,我用适当的dataSource重新加载tableView。
想点什么?
代码:
- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
int count = 0;
if(aTableView == self.tableView){
count = [userTableData count]==0?1:[userTableData count];
}else{
count = [tableData count];
}
return count;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return @"Users";
}
- (UITableViewCell *)tableView:(UITableView *)tView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CellIdentifier";
// Dequeue or create a cell of the appropriate type.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryNone;
}
if(tView == self.tableView){
if([userTableData count] == 0){
cell.textLabel.text = @"Please select a user";
}else{
cell.textLabel.text = [userTableData objectAtIndex:indexPath.row];
}
}else{
cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
}
return cell;
}
然后在输入搜索时,匹配的字符串将添加到tableData数组
答案 0 :(得分:1)
将标签分配给UITableView并在搜索时隐藏有问题的tableView
答案 1 :(得分:0)
在UISearchDisplayController
关于searchResultsTableView
属性的文档中,它说
Discussion:
This method creates a new table view if one does not already exist.
所以你可以尝试在设置UISDC时创建自己的UITableView
,明确地说明它是:
UITableView *searchTableView = [[UITableView alloc] initWithFrame:CGRectZero
style:UITableViewStylePlain];
searchDisplayController.searchResultsTableView = searchTableView;