Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Attempt to present UIAlertController on UIViewController whose view is not in the window hierarchy

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];
like image 558
Ramkrishna Sharma Avatar asked Oct 08 '15 12:10

Ramkrishna Sharma


1 Answers

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

like image 140
Teja Nandamuri Avatar answered Oct 24 '22 03:10

Teja Nandamuri