Esistono due entità: Autore e Libro. L'autore ha un attributo authorName e un libro di relazioni su molti. Il libro ha diversi attributi e un autore di relazioni. C'è un controller di visualizzazione (VCAuthor) per modificare un oggetto Autore. Il controller di visualizzazione figlio (VCBook) consente di modificare i libri dell'autore. C'è solo un objectobjectcontext. Nel gruppo classe i VCBook l'UndoManager come seguendoannullare tutte le modifiche apportate nel controller di visualizzazione figlio
-(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];
}
il cancelAction è collegato a un pulsante Cancel sul VCBook che ha usato per annullare tutte le modifiche effettuate nel VCBook.
problemi è qui: In primo luogo, nel VCAuthor, posso modificare l'authorName in un UITextfiled authorNameTextField da Obama a Big Obama, e salvarlo nella MOC da author.authorName = authorNameTextField.text nel - (void) viewWillDisappear: (BOOL) metodo animato {}. Poi sono entrato nel controller VCBook di visualizzazione figlio per modificare i libri dell'autore e fare clic sul pulsante Annulla per tornare al VCAuthor. Trovo che l'autore sia ancora Obama, il che significa che il cambiamento previsto dell'autoreNome è stato annullato. Il cambiamento di authorName non è presente nel gruppo di annullamento e perché potrebbe accadere? ps. naturalmente mi reloadData quando torno in VCAuthor. Ho appena inserito il nome dell'autore prima e dopo l'annullamento. Prima di annullare l'authorName è cambiato il Big Obama, e dopo averlo annullato diventa Obama
Penso che il problema qui non sia con il ricaricamento, il problema è che stai salvando il nome modificato dell'autore nell'entità – Charan
ma non ho raggruppato la modifica, come potrebbe essere annullata qui? –
il suo comportamento predefinito di gestore annullamenti – Charan