我从表中选择一行。我想将该选择的结果传递给新视图上的UILabel。我需要一个NSFetchRequestController子程序吗?我想要一种更简单的方法将事件核心数据选择传递给非UITableView控制器(只是常规的UIViewController)。
&#39>请求'在下面的objectIndexPath导致错误。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
ReviewController *reviewViewController = [[ReviewController alloc] init];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
Event *selectedEvent = (Event *)[request objectAtIndexPath:indexPath];
reviewViewController.event = selectedEvent;
[self.navigationController pushViewController:reviewViewController animated:YES];
[reviewViewController release];
}
答案 0 :(得分:3)
您不需要新的抓取结果控制器。您只需将与所选tableview行关联的托管对象传递给下一个控制器。您收到错误是因为您尚未执行提取,并且在任何情况下,提取请求都没有objectAtIndexPath
方法。
如果您有一个用于tableview的获取结果控制器,则可以找到所选对象:
reviewViewController.event =[[self.fetchedResultsController fetchedObjects] objectAtIndex:index.row];