Вместо того, чтобы пытаться получить доступ к контроллеру навигации через AppDelegate, я бы рекомендовал добавить класс Singleton, который обрабатывает экраны во всем приложении.Этот менеджер экрана будет отвечать за добавление / удаление / переключение между представлениями, при этом следя за тем, чтобы все ваши контроллеры представлений освобождались должным образом, когда закончите с.Таким образом, вы можете получить доступ к текущему экрану, на котором вы находитесь, и представить контроллер модального представления, как вы говорите, что хотите (Убедитесь, что все ваши контроллеры представления реализуют определенный протокол, который объявляет метод для этого, ради чистой и правильнойкодирование).Удачи!