在我的tableview中有自定义单元格,我从UITableViewCell类初始化。我有第一个字母的记录部分,并有一个动态创建的indexPath。使用搜索显示控制器时自定义CellIdentifier为空
我想添加一个搜索显示控制器到我的tableview。所以我做了,创建了所有方法来过滤数据。我相信我的功能运行良好,因为我正在打印数组来筛选搜索结果。
我的问题是,第一次加载视图时,数据在屏幕上。但是当我点击搜索输入并键入一个字母时,就会出现'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'
错误。在我使用断点之后,我发现我的自定义单元在搜索后是零。数据存在,但单元格未被初始化。
这里是我使用的自定义单元初始化代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ObjectCell";
SpeakerCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSDictionary *myObject = [[sections valueForKey:[[[sections allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)] objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
cell.label1.text = [myObject objectForKey:@"myValue"];
return cell;
}
我相信,在IB将控制时,我犯了一个错误。所以我添加的对象的屏幕截图:
连接检查我的表视图
连接检查我的搜索显示控制器
编辑:问题实际上是解决了,我有用d UISearchBar而不是搜索显示控制器,但我想这个问题仍然没有解决。所以我愿意尝试任何方式使它工作。
这可能已经解决了这个问题,但对于大多数人来说,问题在于如果不在该UITableView的队列中,它们不会创建新的单元格。下面的答案更适合解释如何处理这个问题。 – FilmJ 2012-08-16 06:25:15
其实,从ios6开始,如果使用故事板,细胞就会一直存在.. – nikravi 2013-06-20 02:32:56