2016-09-30 2 views
0

Я получаю пакет данных из push-уведомления в своем делете приложения. Если я получаю этот толчок, я хочу перейти к соответствующему контроллеру представления, который представляет собой несколько VC в глубине моего навигационного стека. Он выглядит очень изменчивым, наблюдая за тем, как приложение быстро перебирает 4 или 5 раз, чтобы добраться до соответствующего VC.Можно создать UIWindow, чтобы скрыть автовыходы от push-уведомления?

Похоже, что я хочу создать новый интерфейс UIWindow, чтобы скрыть основное окно, в то время как этот прерывистый переход происходит. Как я могу сделать это с помощью нового UIWindow (если он появляется, когда мы знаем, что нажимается, и мы удаляемся, когда мы достигаем правильного контроллера вида)? Есть ли еще лучший способ сделать это?

Большое спасибо!

+2

Просто перейдите непосредственно к контроллеру целевого представления. Если вы используете контроллер навигации, тогда вы можете манипулировать стеком контроллера просмотра после того, как «back» работает правильно. – Paulw11

+0

Спасибо за ответ @Paulw! Какие методы вы используете для программного добавления VC в стек после факта? Ценить это! – tahoecoop

ответ

1

Если вы хотите использовать другой UIWindow, чтобы инициировать переход на навигационный стек, все, что вам нужно сделать, это указать в своем приложении keyWindow, показать какой-то индикатор «прогресса», когда переходы происходят в фоновом окне, и то все, что вам нужно сделать, это установить keyWindow на вашем AppDelegate. Вы также можете перевести эту «настройку» с любой анимацией, которую вы хотите!

+0

Спасибо за ответ @BHendricks! Как вы создаете новое окно в делегате приложения, а затем удаляете его на другом контроллере? Цените помощь! – tahoecoop

+1

UIWindow может быть инициирован из любого класса, просто укажите его фрейм, который вы хотите :), и вам просто нужно получить доступ к свойству KeyWindow приложения AppDelegate, поэтому для получения этого из viewController вы должны выполнить UIApplication.sharedApplication(). Delegate (in swift), чтобы получить ссылку на ваш AppDelegate. – BHendricks

Смежные вопросы