Present view controller from app delegate
39,909
Solution 1
You can also try:
[[[UIApplication sharedApplication] keyWindow] rootViewController]
How I use it:
#define ROOTVIEW [[[UIApplication sharedApplication] keyWindow] rootViewController]
[ROOTVIEW presentViewController:interstitialViewController animated:YES completion:^{}];
Solution 2
Swift 3 version for checked response :
UIApplication.shared.keyWindow?.rootViewController
Solution 3
Swift 5 and up
Check this:
UIApplication.shared.windows.first?.rootViewController
Author by
mikeholp
Travel photographer, digital nomad, business consultant, blogger.
Updated on July 12, 2022Comments
-
mikeholp almost 2 years
I'm attempting to present a view controller from the app delegate with this code:
- (void)interstitialViewControllerRequestSucceeded:(UIViewController *)interstitialViewController { [self.window.rootViewController presentViewController:(UIViewController *)interstitialViewController animated:YES completion:NULL]; }
It will display the interstitial on the initial view controller but none of the others. I want it to display on every one attached to a navigation controller.
How can I modify this code to achieve that goal?