0
快速問題傢伙... IBAction按鈕正在創建一個新對象,但當導航器推動DetailViewController它給我SIGABRT。 現在我想知道如果我不能在那裏使用導航控制器功能。 下面的代碼是無法正常工作的一個DetailViewController不顯示何時創建新對象
- (IBAction)insertNewObject
{
// Create a new instance of the entity managed by the fetched results controller.
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
Event *newEvent = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
DetailViewController *detailController = [[[DetailViewController alloc] init] autorelease];
[newEvent setValue:[NSDate date] forKey:@"timeStamp"];
// Save the context with the new object.
NSError *error = nil;
if (![context save:&error]) {
//improve this
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
[detailController setEvent:newEvent];
NSLog(@"Detail Controller New Event 1 (from Master) : %@", newEvent);
[self.navigationController pushViewController:detailController animated:YES];
}
現在,當我選擇單元格它完美。所以下面的代碼工作:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"selectSegue"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
Event *event = (Event *)[fetchedResultsController objectAtIndexPath:indexPath];
NSLog(@"Event on Master:: %@", event);
DetailViewController *detailvc = [[[DetailViewController alloc] init] autorelease];
detailvc.event = [self.fetchedResultsController objectAtIndexPath:indexPath];
NSLog(@"Event on Detail when created :: %@", detailvc.event);
if (event) [[segue destinationViewController] setEvent:(Event *) [self.fetchedResultsController objectAtIndexPath:indexPath]]; //was: setDetailItem:selectedObject
[event release];
[detailvc.event retain];
}
}
感覺就像我缺少一些簡單的東西。但任何人都可以幫助我將該對象添加到該DetailViewController而沒有得到一個SIGABRT? 大家好,新年快樂。
所有屬性都標記爲可選。我認爲故事板讓我感到困惑。現在有很多方法可以推送視圖控制器。不過謝謝你的幫助。 – Farini 2012-01-01 23:53:08