Iphone 加载导航控制器时出现黑屏

Iphone 加载导航控制器时出现黑屏,iphone,objective-c,uiview,uinavigationcontroller,delegates,Iphone,Objective C,Uiview,Uinavigationcontroller,Delegates,下面的代码试图实现一种方法,其中我的导航控制器在两个不同视图的e上启动。问题是,每当我的应用程序启动时,我总是得到一个黑屏 #import "SugarCRMReleaseOneAppDelegate.h" #import "SettingsViewController.h" #import "ModuleViewController.h" @implementation SugarCRMReleaseOneAppDelegate @synthesize window; @synthesiz

下面的代码试图实现一种方法,其中我的导航控制器在两个不同视图的e上启动。问题是,每当我的应用程序启动时,我总是得到一个黑屏

#import "SugarCRMReleaseOneAppDelegate.h"
#import "SettingsViewController.h"
#import "ModuleViewController.h"

@implementation SugarCRMReleaseOneAppDelegate

@synthesize window;
@synthesize navigationController;


#pragma mark -
#pragma mark Application lifecycle


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    // Override point for customization after app launch   

    NSString *a2 = [[NSString alloc] init];
    a2 = [[NSUserDefaults standardUserDefaults] objectForKey:@"savedUsername"];
    NSString *b2 = [[NSString alloc] init];
    b2 = [[NSUserDefaults standardUserDefaults] objectForKey:@"savedPassword"];

    [window makeKeyAndVisible];
    if(a2 == nil && b2 == nil) {
        SettingsViewController *viewController1 = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
        [navigationController initWithRootViewController:viewController1];
        [window addSubview:[navigationController view]];
        [viewController1 release];
    }
    else {
        ModuleViewController *viewController2 = [[ModuleViewController alloc] initWithNibName:@"ModuleViewController" bundle:nil];
        [navigationController initWithRootViewController:viewController2];
        [window addSubview:[navigationController view]];
        [viewController2 release];
    }

    [UIApplication sharedApplication].idleTimerDisabled=YES;
    return YES;
}

如果你得到一个黑屏,那么你的窗口没有被加载

如果调用了事件,请确保您的
,并放置
[window makeKeyAndVisible]将子视图添加到窗口后

对我来说很好

int i = 0;

if(i == 1) {
    VideosViewController *viewController1 = [[VideosViewController alloc] initWithNibName:@"VideosViewController" bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController1];
    [window addSubview:[navigationController view]];

    [window makeKeyAndVisible];

    [viewController1 release];
}
else {
    Videos2ViewController *viewController2 = [[Videos2ViewController alloc] initWithNibName:@"Videos2ViewController" bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController2];
    [window addSubview:[navigationController view]];

    [window makeKeyAndVisible];

    [viewController2 release];
}

如果你得到一个黑屏,那么你的窗口没有被加载

如果调用了
事件,请确保您的
,并放置
[window makeKeyAndVisible]将子视图添加到窗口后

对我来说很好

int i = 0;

if(i == 1) {
    VideosViewController *viewController1 = [[VideosViewController alloc] initWithNibName:@"VideosViewController" bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController1];
    [window addSubview:[navigationController view]];

    [window makeKeyAndVisible];

    [viewController1 release];
}
else {
    Videos2ViewController *viewController2 = [[Videos2ViewController alloc] initWithNibName:@"Videos2ViewController" bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController2];
    [window addSubview:[navigationController view]];

    [window makeKeyAndVisible];

    [viewController2 release];
}

在将导航控制器视图添加到窗口的if块后添加以下行:

[window makeKeyAndVisible];

在将导航控制器视图添加到窗口的if块后添加以下行:

[window makeKeyAndVisible];

是的,正在执行if语句,在添加子视图之后,我刚刚替换了[window makeKeyAndVisible],仍然是黑色的。听起来你有不同的问题。请参阅我的最新帖子。。这对我来说很好。是的,正在执行if语句,在添加子视图之后,我只是替换了[window makeKeyAndVisible],仍然是黑色。听起来你有不同的问题。请参阅我的最新帖子。。这对我来说效果很好。如果对每个视图取消注释viewDidLoad(除非您已经在使用它们),并在每个可能要加载的视图中放置断点,它是否达到了断点?另外,请确保将窗口实例变量设置为IBOutlet,并在MainWindow.xib接口生成器文件中,文档窗口中的应用程序委派项有一个窗口出口,它连接到同一文档窗口中的窗口对象。如果您为每个视图取消viewDidLoad注释(除非您已经在使用它们),并且在每个可能要加载的视图中放置断点,它是否达到断点,确保将窗口实例变量设置为IBOutlet,并且在MainWindow.xib界面生成器文件中,文档窗口中的应用程序代理项具有窗口出口,并且已连接到同一文档窗口中的窗口对象。