Я учу себя программировать, создав простое приложение для детализации основных данных с UINavigationController
, в котором вы выбираете сущность прародителя для просмотра UITableView
родителей, а затем выбираете родителя для просмотра детей. Всякий раз, когда пользователь выбирает элемент, я использую свойства, чтобы передать NSManagedObjectContext
и NSFetchedResultsController
для следующего просмотра. Каждый контроллер представления является UITableViewController
, и все они соответствуют протоколу NSFetchedResultsControllerDelegate
.
Это работает нормально, но означает, что каждый контроллер представления реализует методы делегата и т. Д., Что кажется неэффективным.
Чтобы упростить приложение, было бы лучше иметь один NSFetchedResultsControllerDelegate
, на который ссылаются все мои контроллеры представления? И где будет лучшее место для этого - делегат приложения?
Спасибо!
--------------------------- EDIT ---------------- ------------
Я пытаюсь получить ответ GorillaPatch для работы ниже. В моем дочернем представлении у меня есть этот метод, который является методом делегата для модального «Добавление View Controller»:
- (void)addingViewController:(AddingViewController *)addingViewController didAdd:(NSString *)itemAdded
{
NSManagedObjectContext *context = [parent managedObjectContext];
Child *newChild = [NSEntityDescription insertNewObjectForEntityForName:@"Child" inManagedObjectContext:context];
[self.children insertObject:newChild atIndex:0];
newChild.name = itemAdded;
newChild.dateStamp = [NSDate date];
// Save the context.
NSError *error = nil;
if (![context save:&error])
{
// Handle The Error.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
[self dismissModalViewControllerAnimated:YES];
}
И в заголовочном файле есть следующее:
@property (nonatomic, retain) Trip *trip;
@property (nonatomic, retain) Checklist *checklist;
@property (nonatomic, retain) NSMutableArray *checklists;