Segue未在搜索结果上执行

时间:2014-08-07 13:24:45

标签: ios objective-c segue

我有UITableView,显示NSArray。使用UIView点击每个表格单元格即可显示segue identifier。当我添加搜索栏时,出于某种原因,我无法通过点击搜索到的单元格来访问UIView

我做了这个实验

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    NSLog(@"prepareForSegue");

    if ([segue.identifier isEqualToString:@"view"]) {

        NSLog(@"segue = view");
    }

}

我运行应用程序并直接尝试搜索,然后单击任何表格单元格。 我没有记录。

当我不进行搜索时,只需直接点击表格单元格即可。我得到了两份日志。

prepareForSegue
segue = view

可能是什么问题?请给我解决方案。在此先感谢。

更新:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.

    return [recipes count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    Recipe *recipe = [recipes objectAtIndex:indexPath.row];
    cell.textLabel.text = recipe.name;

    return cell;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {

    id <NSFetchedResultsSectionInfo> sectionInfo = [self.fetchedResultsController sections][section];

    return [sectionInfo name];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"view"]) {
        NSIndexPath *indexPath = nil;
        Recipe *recipe = nil;

        if (self.searchDisplayController.active) {
            indexPath = [self.searchDisplayController.searchResultsTableView indexPathForSelectedRow];
            recipe = [searchResults objectAtIndex:indexPath.row];
        } else {
            indexPath = [self.tableView indexPathForSelectedRow];
            recipe = [recipes objectAtIndex:indexPath.row];
        }

        RecipeDetailViewController *destViewController = segue.destinationViewController;
        destViewController.recipe = recipe;
    }
}

0 个答案:

没有答案