отменить все изменения, сделанные в дочернем контроллере представления

Есть две сущности :Автор и Книга. У автора есть атрибут authorName и атрибут -для многих книг о взаимоотношениях. Книга имеет несколько атрибутов и отношение автора. Существует контроллер представления (VCAuthor )для редактирования объекта Author. Контроллер дочернего представления (VCBook )предназначен для редактирования книг автора. Существует только один контекст управляемого объекта. В классе VCBook я группирую undomanager следующим образом

-(void)viewDidLoad
{    
    NSUndoManager *anUndoManager = [[NSUndoManager  alloc] init];
    [self.book.managedObjectContext setUndoManager:anUndoManager];
    [anUndoManager release];
    [self.book.managedObjectContext.undoManager beginUndoGrouping];
}

-(void)cancelAction:(id)sender
{
    NSLog(@"%@", self.author.authorName);
    [self.book.managedObjectContext.undoManager endUndoGrouping];
    [self.book.managedObjectContext.undoManager undoNestedGroup];
    self.book.managedObjectContext.undoManager = nil;
    NSLog(@"%@", self.author.authorName);    
    [self dismissModalViewControllerAnimated:YES];  
}

: действие cancelAction связано с кнопкой отмены на VCBook, которая используется для отмены всех изменений, сделанных в VCBook.

Проблемы здесь :Во-первых, в VCAuthor я редактирую authorName в UITextfiled authorNameTextField от Обамы до Большого Обамы и сохраняю его в MOC с помощью author.authorName = authorNameTextField.text в-(void )viewWillDisappear :(BOOL )анимированный{} метод. Затем я зашел в дочерний контроллер просмотра VCBook, чтобы отредактировать книги автора, и нажмите кнопку отмены, чтобы вернуться к VCAuthor. Я считаю, что authorName по-прежнему Обама, это означает, что ожидаемое изменение authorName было отменено. Смена authorName вообще не в группе отмены, и почему такое могло произойти? пс. конечно, я перезагружаю данные, когда возвращаюсь в VCAuthor. Я просто NSLog имя автора до и после отмены. Перед отменой authorName будет изменено на Большой Обама, а после отмены оно станет Обама

9
задан lu yuan 4 May 2012 в 09:11
поделиться