Получение черного экрана при загрузке навигационного контроллера - PullRequest
1 голос
/ 28 июля 2010

Следующий код ниже пытается реализовать метод, при котором мой навигационный контроллер запускается на одном из двух разных видов.Проблема в том, что я получаю черный экран каждый раз, когда запускается мое приложение.

#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;
}

Ответы [ 2 ]

1 голос
/ 28 июля 2010

Добавьте следующую строку сразу после блока if, в который вы добавляете представление контроллера Nav, в окно:

[window makeKeyAndVisible];
0 голосов
/ 28 июля 2010

Если вы получаете черный экран, значит ваше окно не загружается.

Убедитесь, что вы вызываете if события, а также поместите [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];
}
...