Подтвердить что ты не робот

Текущий контроллер представления из делегата приложения

Я пытаюсь представить контроллер представления из делегата приложения с помощью этого кода:

- (void)interstitialViewControllerRequestSucceeded:(UIViewController *)interstitialViewController
{
    [self.window.rootViewController presentViewController:(UIViewController *)interstitialViewController animated:YES completion:NULL];
}

Он отобразит интерстициальный элемент на контроллере начального представления, но ни один из остальных. Я хочу, чтобы он отображался на каждом подключенном к контроллеру навигации.

Как я могу изменить этот код для достижения этой цели?

4b9b3361

Ответ 1

Вы также можете попробовать:

[[[UIApplication sharedApplication] keyWindow] rootViewController]

Как я его использую:

#define ROOTVIEW [[[UIApplication sharedApplication] keyWindow] rootViewController]
[ROOTVIEW presentViewController:interstitialViewController animated:YES completion:^{}];

Ответ 2

Версия Swift 3 для проверенного ответа:

UIApplication.shared.keyWindow?.rootViewController