Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:],

12,577

Solution 1

here i got the solution by checking if navigationController is nil or not:-

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

Solution 2

I had to remove this line from application didFinishLaunchingWithOptions:

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

And that fixed it for me.

Solution 3

Using this row solved my issue (iOS 10):

[self.window setRootViewController:self.navigationController];

Was (worked for older iOS and Xcode):

[self.window addSubview:navigationController.view];
Share:
12,577

Related videos on Youtube

Akash Raghani
Author by

Akash Raghani

Updated on October 14, 2022

Comments

  • Akash Raghani
    Akash Raghani over 1 year

    I am getting the following error in iOS9 only.

    Here is my code:-

    - (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];
    }
    

    Note : This code is working fine in Xcode 6.4 and iOS8.

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