Search 单击搜索结果后执行Segue

Search 单击搜索结果后执行Segue,search,core-data,detailsview,Search,Core Data,Detailsview,我试图通过单击相应的搜索结果来执行一个名为“detailstudent”的子类。不幸的是,它不起作用。 我不明白为什么它不起作用。以下是我目前的代码: if (tableView == self.searchDisplayController.searchResultsTableView) {student = [self.searchResults objectAtIndex:indexPath.row]; NSString *fullname = [NSString stringWithFo

我试图通过单击相应的搜索结果来执行一个名为“detailstudent”的子类。不幸的是,它不起作用。 我不明白为什么它不起作用。以下是我目前的代码:

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");

}

代码中有几点不清楚:

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

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

  • 实例化视图控制器并通过
    presentViewController:animated:
  • 通过序列图像板中的序列链接局部视图控制器。在这种情况下,您不需要实例化它,只需调用
    performsguewithidentifier
    。您可以在
    prepareforsgue
    中配置详细信息视图

您好,蒙迪,非常感谢您的回复。我试着按照你的指示去做,但没能解决我的问题。我已经创建了一个名为“Detail Student Segue”的Segue,但我无法使用上述方法中的identifier执行Segue<代码>[self-PerformsgueWithIdentifier:@“详细学生序列”发件人:全名]应用程序因“原因:接收器()没有标识符为“详细学生序列”的序列而崩溃
否则([segue.identifier isEqualToString:@“详细学生序列”){DetailStudent*DetailStudent=segue.destinationViewController;DetailStudent.delegate=self;DetailStudent.managedObjectContext=self.managedObjectContext;NSIndexPath*indexPath=[self.tableView indexPathForSelectedRow];self.selectedStudent=[self.fetchedResultsController对象索引路径:indexPath];detailStudent.student=self.selectedStudent;}
现在它成功了!我清理了我的项目,它与PerformsgueWithIdentifier一起工作。干杯m8!我真的很想对你的评论投赞成票,但恐怕我没有足够的代表,这是我的第一篇文章,28天前刚刚开户,但我会尽快这么做