Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Code not in window hierarchy root view [duplicate]

I'm facing a problem trying to link my UIViewController but I got my final error.

Attempt to present ViewController whose view is not in the window hierarchy

Here's my code :

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSString *title = [alertView buttonTitleAtIndex:buttonIndex];

    if([title isEqualToString:@"Wokay"])
    {
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
        UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"Vibes"];
        [self.window.rootViewController presentViewController:vc animated:YES completion:nil];

    }
}

Code Error:

Warning: Attempt to present <ViewController: 0x110634bc0> on <Login: 0x10951e7f0> whose view is not in the window hierarchy!
like image 676
user3546239 Avatar asked Oct 31 '22 23:10

user3546239


1 Answers

It seems like that your UIViewController(Login) is not in Window Hierarchy.

You may be adding your LoginViewController as a subView in UIWindow. If so, set it as the UIWindow's rootViewController

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    //Other code parts

    [self.window setRootViewController:loginViewController];
    return YES;
}

OR

If you are adding LoginViewController's view as subView in any UIViewController(say FirstViewController), present it instead

In your FirstViewController.m,

-(void)viewDidLoad{
    [super viewDidLoad];


    LoginViewController *loginViewController ;//Instantiate LoginViewController here
    [self presentViewController:loginViewController animated:NO completion:Nil];
}
like image 109
Bilal Saifudeen Avatar answered Nov 13 '22 06:11

Bilal Saifudeen