无法在Apple SDK 3.1.3中使用initWithNibName加载UIView

时间:2010-03-28 19:51:06

标签: iphone objective-c uiview sdk uiviewcontroller

我正在尝试在AppDelegate类中以编程方式加载我的UIViewController和相应的UIView。我在AppDelegate类的applicationDidFinishLaunchingMethod中有以下内容:

  • (void)applicationDidFinishLaunching:(UIApplication *)application {
    NSLog(@“--- AppDelegate applicationDidFinishLaunching Start”);

    //在应用程序启动后覆盖自定义点 // MainController * controller = [[MainController alloc] initWithNibName:@“MainView”bundle:nil]; MainController2 * controller = [[MainController2 alloc] initWithNibName:@“MainView2”bundle:nil];

    if(controller.view == nil) {     NSLog(@“---控制器视图是零!!!!!!”); } [window addSubview:controller.view]; [window makeKeyAndVisible];

    NSLog(@“--- AppDelegate applicationDidFinishLaunching End”); }

基本上viewController中的视图没有加载,当应用程序启动时,它只显示空白窗口。有趣的是,它之前有效,然后才停止工作。我想知道这是否是iPhone SDK 3.1.3中的一个错误???这是一个非常令人讨厌的问题,当我开始遇到这个问题并且不得不重新启动一个空白项目并复制我的所有资源时,我在一个新项目中走了很多路,当它再次开始发生时......我已卸载iPhone OS 3.1.3并重新安装,问题占上风......

我还创建了第二个UIViewController类和相应的nib,它负载得很好......我不确定为什么一个工作而另一个不工作......

您可以通过以下链接下载演示此问题的示例项目:

http://www.mediafire.com/?nmhnmhbeyki

要在工作/非工作UIViewController和UIView之间来回切换,只需注释AppDelegate中的initWithNibLine行以及appdelegate.h文件中相应的#import“MainController.h”语句注释/注释...

任何想法???

我链接的示例项目以尽可能少的文件/代码行隔离问题...我感谢您提供的任何帮助。

谢谢, 詹姆斯

1 个答案:

答案 0 :(得分:1)

MainController覆盖“loadView”,但其“loadView”实现实际上并没有加载任何东西(或调用[super loadview])。因此,没有观点。