我有一个viewcontroller包含由同一个viewcontroller.i管理的多个tableview.i添加搜索到其中一个tableviews ...我添加了搜索栏amd searchisplaycontroller并连接了searchdelegate,searchdatasource,searchbar.etc的出口...
我有用于过滤表格内容正常工作的代码......
下面是cellforrowatindexpath方法中的代码
static NSString *simpleTableIdentifier = @"search";
SearchFieldsCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[SearchFieldsCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
NSDictionary *field=nil;
if (tableView == self.searchDisplayController.searchResultsTableView) {
field = _searchfieldsArray[indexPath.row];
}
else{
field = _fieldsArray[indexPath.row];
}
cell.titleLabel.text=field[@"a"];
cell.subtitleLabel.text=field[@"b"];
cell.detailLabel.text=field[@"c"];
cell.flagImage.image=[UIImage imageNamed:@"ic_flag.png"];
return cell;
但它没有显示tableview的内容...甚至tableviewcell的高度已设置并且在运行时...如果我在调试控制台中给出像po cell.titlelabel.text这样的printobject,它给出的结果如< / p>
<UILabel: 0xc15d500; frame = (70 0; 241 21); text = 'result'; userInteractionEnabled = NO; layer = <CALayer: 0xc15d5b0>>
我进一步发现了代码行
SearchFieldsCell *cell=[tableViewdequeueReusableCellWithIdentifier:simpleTableIdentifier];
完全正常工作,即从故事板加载原型单元格但行
if (cell == nil) {
cell = [[SearchFieldsCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
返回空的白色单元格,它不会从故事板中的原型单元加载......怎么会发生这种情况......?有人请帮忙......
答案 0 :(得分:2)
尝试使用自定义单元格类输入强制转换单元格。所以它会初始化&amp;不是空值。
SearchFieldsCell *cell = (SearchFieldsCell *)[tableView dequeueReusableCellWithIdentifier: simpleTableIdentifier];
希望它会对你有帮助。
感谢。
答案 1 :(得分:2)
我知道它不是这样做的...但是经过这么多不同的方式解决方案是创建一个自定义xib文件并使uisearchresultscontrollers tableview注册这个nib文件。工作
[self.searchDisplayController.searchResultsTableView registerNib:[UINib nibWithNibName:@"SearchFieldsCell"
bundle:[NSBundle mainBundle]]
forCellReuseIdentifier:@"Search"];