单击搜索结果后执行Segue

时间:2013-12-26 12:43:27

标签: search core-data detailsview

我尝试通过单击相应的搜索结果对名为“Detail Student”的子类执行segue。不幸的是,它不起作用。 我无法弄清楚为什么它不起作用。到目前为止,这是我的代码:

if (tableView == self.searchDisplayController.searchResultsTableView)
{student = [self.searchResults objectAtIndex:indexPath.row];
NSString *fullname = [NSString stringWithFormat:@"%@ %@", student.vorname, student.name];
cell.textLabel.text = fullname;
cell.detailTextLabel.text = student.hatBetrGrund.name;
    DetailStudent *controller = [self.storyboard instantiateViewControllerWithIdentifier :@"DetailStudent"];
    controller.delegate = self;
    controller.managedObjectContext = self.managedObjectContext;

   NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
   self.selectedStudent = [self.fetchedResultsController objectAtIndexPath:indexPath];

    controller.student = self.selectedStudent;
    NSLog(@"Wow");

}

1 个答案:

答案 0 :(得分:1)

您的代码中有几件事情不明确:

首先,您要设置文本和详细信息标签的文本。这属于cellForRowAtIndexPath或其他方法,如configureCell。但是,从表格视图中进行选择是通过didSelectRowAtIndexPath捕获的。确保使用一种方法配置单元格,并对另一种方法中的选择做出反应。

其次,您正在实例化视图控制器但不显示它。你可以

  • 实例化视图控制器并通过presentViewController:animated:
  • 呈现它
  • 通过故事板中的segue链接详细视图控制器。在这种情况下,您不需要实例化它,只需调用performSegueWithIdentifier即可。您可以在prepareForSegue
  • 中配置详细信息视图