Странно, но когда я тестирую свои два ViewControllers
по отдельности, они работают просто отлично.Когда они находятся внутри TabBarController
со следующим кодом, они больше не работают - они не загружаются.У меня есть точка останова в методе viewDidLoad
, который не вызывается.
Я сделал фиктивный свой проект до того, как начал работать с CoreData
, и он отлично работал с этим кодом.Так что проблема началась, когда контроллеры представления получили свои данные от CoreData
.
Думая, что проблема была CoreData
, я решил реализовать UITabBarController
в примере CoreDataBooks
от Apple.Это работало просто отлично.
Я обнаружил, что некоторые потоки решают некоторые проблемы с CoreData
и TabBarControllers
, но в них используется IB.В моем проекте нет файлов .xib!
Я не в курсе.Предложения будут очень благодарны!
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UITabBarController *tabBarController = [[UITabBarController alloc] init];
ProjectRootViewController *projectRootViewController = [[ProjectRootViewController alloc] initWithStyle:UITableViewStylePlain];
WorkTimeRootViewController *workTimeRootViewController = [[WorkTimeRootViewController alloc] initWithStyle:UITableViewStylePlain];
NSManagedObjectContext *context = [self managedObjectContext];
if (!context)
{
NSLog(@"Problems loading context.");
}
projectRootViewController.managedObjectContext = context;
workTimeRootViewController.managedObjectContext = context;
UINavigationController *projectNavigationController = [[UINavigationController alloc] initWithRootViewController:projectRootViewController];
UINavigationController *workTimeNavigationController = [[UINavigationController alloc] initWithRootViewController:workTimeRootViewController];
[projectRootViewController release];
[workTimeRootViewController release];
navigationControllers = [[NSArray alloc] initWithObjects:projectNavigationController, workTimeNavigationController, nil];
[projectNavigationController release];
[workTimeNavigationController release];
[tabBarController setViewControllers:navigationControllers];
[self.window addSubview:[tabBarController view]];
[tabBarController release];
[self.window makeKeyAndVisible];
return YES;
}