Eric
Eric

Reputation: 4061

Pass Core Data results to UILabel

I'm selecting a row from a table. I want to pass the results of that selection to a UILabel on a new View. Do I need an NSFetchRequestController subroutine for the below? I wanted a simpler way to pass the event core data selection to a non-UITableView Controller (just a regular UIViewController).

The 'request' at objectIndexPath below is causing the error.

- (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];
} 

Upvotes: 1

Views: 283

Answers (1)

TechZen
TechZen

Reputation: 64428

You don't need a new fetched results controller. You just pass the managed object associated with the selected tableview row to the next controller. You are getting the error because you haven't performed a fetch and in any case a fetch request does not have a objectAtIndexPath method.

If you have a fetched results controller for the tableview, you find the selected object with:

reviewViewController.event =[[self.fetchedResultsController fetchedObjects] objectAtIndex:index.row];

Upvotes: 3

Related Questions