Iphone 如何在搜索后显示DetailView
我使用谓词来筛选表。 它工作得很好,还可以显示每个单元格的detailView 但是在过滤之后,在detailView中显示过滤后的列表是不起作用的。 按下此按钮时,单元格只会变为蓝色,但不会切换到detailView 我错过了什么 代码如下所示Iphone 如何在搜索后显示DetailView,iphone,xcode,filtering,predicate,detailview,Iphone,Xcode,Filtering,Predicate,Detailview,我使用谓词来筛选表。 它工作得很好,还可以显示每个单元格的detailView 但是在过滤之后,在detailView中显示过滤后的列表是不起作用的。 按下此按钮时,单元格只会变为蓝色,但不会切换到detailView 我错过了什么 代码如下所示 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { DetailViewController *dvCon
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
Person *person;
if (tableView == self.searchDisplayController.searchResultsTableView)
{
person = [self.filteredPeople objectAtIndex:indexPath.row];
}
else
{
person = [self.people objectAtIndex:indexPath.row];
}
dvController.title = person.firstName;
dvController.price = person.sjuName;
dvController.link = person.sexName;
dvController.picture = [UIImage imageNamed:person.femName];
[self.navigationController pushViewController:dvController animated:YES];
[dvController release];
dvController = nil;
}
这里两个tableView属于不同的类,因此不能相等,因此将if条件更改为
if ([tableView class] != [UITableView class]) // if it's is of type UISearchResultsTableView
{
person = [self.filteredPeople objectAtIndex:indexPath.row];
}
else
{
person = [self.people objectAtIndex:indexPath.row];
}
那么这里有两个表视图吗?表工作正常,而过滤后的表在显示过滤后的detailView时,什么也不做。只加载了一行视图中的委托,mySearchBar.delegate=self;这还不够吗?我只想确认,当您选择一个单元格时,是否正在调用此方法?????当我按下一个单元格时/-(void)tableView:(UITableView*)tableView didSelectRowatineXpath:(NSIndexPath*)indexPath//显示detailView,if-else决定它是过滤列表还是未过滤列表。如果我删除If-else,它将正常工作,但我无法在detailView中显示过滤后的内容,即“If”现在不执行任何操作。不同之处在于,未过滤时,detailView进入,但没有内容。过滤后的颜色没有改变,按下时单元格变为蓝色,什么也不做。可能是行数方面的问题。其他没有进入detailView的值是正确的,我指的是单元格中的图标和其他名称。没有崩溃。但我发现“如果”有问题。它从来就不在那里,只是去了别的地方。这就是为什么过滤器之后什么也没发生