加载核心数据项目中的视图控制器的问题

问题描述:

我刚刚开始学习在XCode 4中使用核心数据,并且在核心数据项目中从应用程序委托加载我的第一个视图控制器时出现了一个非常奇怪的问题。我真的不确定我做错了什么,只是当我的核心数据没有实现时,我所做的工作非常好,但现在没有。加载核心数据项目中的视图控制器的问题

我发现发生的事情是appDelegate会加载,然后它会开始加载视图控制器(我可以让它记录它通过initWithNibName方法)。但是,然后视图控制器消失,我看到的只是主窗口。在错误日志中没有生成错误。

下面是从的appDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // other code here 

    UINavigationController *navigationController = [[[UINavigationController alloc] init] autorelease]; 

    HomeViewController *viewController = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil]; 
    viewController.title = @"My Company"; 
    [navigationController pushViewController:viewController animated:NO]; 

    [window addSubview:navigationController.view]; 

    [viewController release]; 

    [self.window makeKeyAndVisible]; 
    return YES; 
} 

相关的代码的视图控制器基本上只具有的时刻在存根它数据,但我可以根据请求发布的任何方法。预先感谢您的帮助。

更新:嗯,我终于得到这个工作在我自己的,但我不知道它为什么工作。我所做的只是将导航控制器作为应用程序委托的属性移除,并在didFinishLaunchingWithOptions方法中将init自动释放。之后,它工作得很好。上面贴出的代码是最后的工作。奇怪的是,尽管如此,我在另一个项目中尝试了同样的事情,但它并没有在那个项目上工作。

下面是从第二个项目

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    UINavigationController *navigationController = [[[UINavigationController alloc] init] autorelease]; 
    StartViewController *viewController = [[StartViewController alloc] initWithNibName:@"StartViewController" bundle:nil]; 

    [navigationController setNavigationBarHidden:YES]; 
    [navigationController pushViewController:viewController animated:NO]; 

    [window addSubview:navigationController.view]; 
    [viewController release]; 

    [self.window makeKeyAndVisible]; 
    return YES; 
} 

尝试不同的东西这样的代码:

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    HomeViewController *viewController = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil]; 
    viewController.title = "My Company"; 
    [navigationController pushViewController:viewController animated:NO]; 

    [viewController release]; 

    [window addSubview:navigationController.view]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 
+0

谢谢。只是试了一下,得到了同样的结果。 – unclesol 2011-04-20 18:24:27

+0

@Carlton Smith:问题! navigationController你在哪里定义它?它是与一个'IBOutlet'连接的吗? – 2011-04-20 20:15:58

+0

如果你看看现在发布的代码,那我终于可以开始工作了。我没有将导航控制器连接到IBOutlet。 – unclesol 2011-04-20 23:48:15