一个分组的单元格出现在我的普通tableView中,我不知道为什么

时间:2011-08-12 16:53:55

标签: iphone ipad uisearchdisplaycontroller uitableview

所以我不知道这是怎么回事,或者如何修复它,但是我的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数组

2 个答案:

答案 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;