[英]ios/objective-c: Search Display Controller combined with custom cell
我正在使用利用NSPrediate搜索从核心数据创建的表格视图的搜索栏和搜索显示控制器。 以下代码对我的大多数VC都适用。 但是,对于一个使用自定义单元格的地方,每当我搜索时,结果都是零。
这是cellforrowatindexpath中的代码,用于调整搜索的数据源:
Items *item;
if (tableView == self.searchDisplayController.searchResultsTableView) {
item = [searchResults objectAtIndex:indexPath.row];
} else {
item
= [self.fetchedResultsController objectAtIndexPath:indexPath];
}
因为这是VC使用自定义单元格的唯一情况,所以我想知道是否就是为什么没有返回结果的原因。
这行代码告诉cellforrowatindexpath
使用自定义单元格:
customCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"Cell"];
cell.item = item;
最后,这是设置单元格中值的方式:
-(void) setItem:(Items *)item{ //open 1
_item = item;
self.nameLabel.text = item.name;
}
自定义单元格对搜索中不会出现任何项目负责吗?还是应该在其他地方查找错误?
注意:搜索后返回的项目数始终为零。
(IBAction)onbtnSearchTapped:(id)sender {
@try{
self.strSearchName = self.txtSearchName.text;
if ([self.strSearchName isEqualToString:@""] &&
[self.strSearchVehicleType isEqualToString:@""] ) {
self.isSearch = NO;
}
else {
self.isSearch = YES;
NSString* filter = @"%K CONTAINS[cd] %@ || %K CONTAINS[cd] %@";
NSMutableArray *args=[[NSMutableArray alloc]initWithObjects:@"sFirstName",self.strSearchName,nil];
NSArray *arrSearch=[NSArray arrayWithArray:args];
self.arySearchList =[NSMutableArray arrayWithArray:[aryList filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:filter argumentArray:arrSearch]]];
DLog(@"%@",self.arySearchList);
self.strSearchName = @"";
}
[self.tableView reloadData];
} @catch (NSException *exception) {
NSLog(@"Exception At: %s %d %s %s %@", __FILE__, __LINE__, __PRETTY_FUNCTION__, __FUNCTION__,exception);
}
@finally {
}}
并在节的行数中
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (self.isSearch == YES) {
return [self.arySearchClientList count];
} else {
return [aryClientList count];
}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.