Objective-c – Attempt to present UIAlertController on UIViewController whose view is not in the window hierarchy

hierarchyios9objective cuiviewcontroller

I'm trying to check the UIAlertController in iOS 9 for my sample application and while run it then I had found warning in console. I'm using Xcode 7 and Objective C.

Please find the below warning message in console.

Warning: Attempt to present < UIAlertController: 0x7fb1bb5be040 > on
< ViewController: 0x7fb1bb5aef30 > whose view is not in the window
hierarchy!

Please find the below code for more information.

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert"
                                                               message:@"This is an alert."
                                                        preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
                                                      handler:^(UIAlertAction * action) {}];

[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];

Best Answer

I guess, you are trying to present the alert on view did load. You get the error:

Warning: Attempt to present < UIAlertController: 0x7fb1bb5be040 > on < ViewController: 0x7fb1bb5aef30 > whose view is not in the window hierarchy!

because, in view did load the views are not yet available to display to the user. Hence you can't present the alert. Move the code into viewDidAppear

Related Topic