2015-09-22 17 views
8

Aşağıdaki hatayı yalnızca iOS9'da alıyorum.Onaylama hatası - [UIApplication _runWithMainScene: transitionContext: completion:],

İşte benim kodudur: -

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    if ([[NSUserDefaults standardUserDefaults] objectForKey:@"login_dict"]) 
    { 
     if ([[NSUserDefaults standardUserDefaults] objectForKey:@"isLogout"] == nil || [[[NSUserDefaults standardUserDefaults] objectForKey:@"isLogout"] integerValue]== 0) 
     { 
      self.loginDict = [[BaseViewController sharedInstance] removeNullFromDictionary:[[NSUserDefaults standardUserDefaults] objectForKey:@"login_dict"]]; 
      self.firstViewController = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil]; 
     } 
     if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"isLogout"] integerValue]== 1) 
     { 
      self.firstViewController = [[WelcomeViewController alloc] initWithNibName:@"WelcomeViewController" bundle:nil]; 
     } 
     NSLog(@"Userinfo = %@",self.loginDict); 
    } 
    else 
    { 
     self.firstViewController = [[WelcomeViewController alloc] initWithNibName:@"WelcomeViewController" bundle:nil]; 
    } 

    self.window.backgroundColor = [UIColor whiteColor]; 
    [self.window makeKeyAndVisible]; 

    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
    self.navigationController = [[BufferedNavigationController alloc] initWithRootViewController:self.firstViewController]; 
    //[window makeKeyAndVisible]; 

    [self.window setRootViewController:self.navigationController]; 
} 

Not: Bu kod Xcode 6.4 ve iOS8 içinde iyi çalışıyor. Burada

Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3505.16/UIApplication.m:3294 

cevap

2

i NavigationController nil olup olmadığını kontrol ederek çözüm var: -:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

Ve bu düzelttim

if (self.navigationController== nil) 
{ 
    self.navigationController = [[BufferedNavigationController alloc] initWithRootViewController:self.firstViewController]; 
} 
else 
{ 
    [self.navigationController setViewControllers:@[self.firstViewController] animated:NO]; 
} 
5

Başvuru didFinishLaunchingWithOptions bu çizgiyi kaldırmak zorunda benim için. bu satırı kullanarak

2

sorunumu (iOS 10) çözüldü:

[self.window setRootViewController:self.navigationController]; 

(eski iOS ve Xcode için çalışmış) oldu :

[self.window addSubview:navigationController.view]; 
İlgili konular