Я создаю простой интерфейс с помощью NavigationController и BandListViewController (UITableViewController) в Интерфейсном Разработчике и устанавливаю делегирование для свойств AppDelegate.
@interface CRUDAppDelegate : NSObject <UIApplicationDelegate> {
UINavigationController *bandNav;
BandListViewController *bandList;
}
и
Тем не менее, я не могу понять, как я могу инициализировать свой BandListViewController, передав параметр paramater managedObjectContext, не устанавливая его в awakeFromNib. CRUDAppDelegate уже инициирует этот контроллер и устанавливает его собственный nib в navigationController, но затем, когда я пытаюсь создать новый BandListViewController в didFinishLaunchingWithOptions с initInManagedObjectContext, отображение (TableViewController) остается от старого bandList. (with managedObjectContext = null)
То, что я до сих пор делал, - это поддерживал bandList managedObjectContext в awakeFromNib, как предлагает Apple.
- (void)awakeFromNib
{
/*
Typically you should set up the Core Data stack here, usually by passing the managed object context to the first view controller.
self.<#View controller#>.managedObjectContext = self.managedObjectContext;
*/
self.bandList.managedObjectContext = self.managedObjectContext;
}
Что я хотел
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.bandList = [[BandListViewController alloc] initInManagedObjectContext:self.managedObjectContext];
// Override point for customization after application launch.
[self.window addSubview:bandNav.view];
[self.window makeKeyAndVisible];
return YES;
}