Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在搜索后显示DetailView_Iphone_Xcode_Filtering_Predicate_Detailview - Fatal编程技术网

Iphone 如何在搜索后显示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

我使用谓词来筛选表。 它工作得很好,还可以显示每个单元格的detailView

但是在过滤之后,在detailView中显示过滤后的列表是不起作用的。 按下此按钮时,单元格只会变为蓝色,但不会切换到detailView

我错过了什么

代码如下所示

- (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的值是正确的,我指的是单元格中的图标和其他名称。没有崩溃。但我发现“如果”有问题。它从来就不在那里,只是去了别的地方。这就是为什么过滤器之后什么也没发生