14

我使用 Xcode 4.2 创建了一个基于故事板的 iOS 应用程序。我的一个屏幕包含一个 UITableViewController,使用动态自定义单元格。

到现在为止还挺好。

现在,我想添加一个 UISearchDisplayController 来允许过滤我的列表。

出于某种原因, UISearchDisplayController 不会显示我的自定义单元格,我找不到强制它的方法......

这就是我的 cellForRowAtIndexPath 方法的外观:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"QueueListCell";
    QueueListTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[QueueListTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                             reuseIdentifier:CellIdentifier];
    }
    assert(cell);

    if ([tableView isEqual:self.searchDisplayController.searchResultsTableView]) {
        indexPath = [_indexPathsForSearchResults objectAtIndex:indexPath.row];
    }

    // Set up the cell...
    NSDictionary* itemDict = [_ListItems objectAtIndex:indexPath.row];

    cell.labelQueueName.text = [itemDict objectForKey:kQueueName];
    cell.labelQueueNumItems.text = [[itemDict objectForKey:kQueueNumItems] stringValue];

    return cell;    
}

关于如何使它工作的任何想法?我的意思是,我的 UISearchDisplayController 表确实显示了正确数量的结果(我知道因为我可以点击它们,我添加了一个 NSLog 让我知道我在点击什么......)

这是我的表格视图 这是我的表格视图

这就是搜索显示表的样子...... 这就是搜索显示表的样子......

我的问题/问题是如何让 UISearchDisplayController 表格视图显示我的自定义单元格?

任何帮助表示赞赏...

鲁文

4

1 回答 1

27

特定于查询的答案

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
}

对于完整示例,请获取来自苹果网站的示例代码

一步一步的插图

于 2011-12-07T12:50:36.287 回答