TabBarController不会使用CoreData加载ViewControllers

时间:2011-07-04 12:07:05

标签: ios core-data

这很奇怪但是当我分别测试我的两个ViewControllers时,它们工作得很好。如果它们位于具有以下代码的TabBarController内部,则它们不再起作用 - 它们不会被加载。我在viewDidLoad方法中有一个断点,它没有被调用。

在我开始使用CoreData之前,我已经完成了项目的假设,并且它与此代码完美配合。因此,当视图控制器从CoreData获取数据时,问题就开始了。

认为CoreData是问题,我决定在Apple的UITabBarController示例中实施CoreDataBooks。它运作得很好。

我发现一些线程解决了CoreDataTabBarControllers的一些问题,但这些问题使用了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;
}

0 个答案:

没有答案