2017-02-01 6 views
0

Я получаю push-уведомления и полезную нагрузку. Я проверяю, включено ли приложение в фоновом режиме. Если да, я хочу перенаправить пользователя на экран сообщений, например. В моем приложении есть контроллеры навигации, а также раздвижное меню. Пытаюсь с помощью этого кода:Перенаправление на конкретный экран после получения push-уведомления - Swift

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) { 
      if (application.applicationState == UIApplicationState.inactive || application.applicationState == UIApplicationState.background ) { 
        let storyboard = UIStoryboard(name: "Main", bundle: nil) 
        let vc = storyboard.instantiateViewController(withIdentifier: "Message") 
        window?.rootViewController = vc 
      } 
    } 

Однако этот экран нагрузки, когда он выходит из строя, как это есть много компонентов отсутствуют (UINavigation бары и т.д.). Есть ли другой способ перенаправления, возможно, при создании необходимых сегментов?

ответ

0

Если вы не указали навигационные панели/элементы навигации, попытались ли вы направить контроллер вида в стек навигации, прежде чем устанавливать его как root vc? Например:

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let vc = storyboard.instantiateViewController(withIdentifier: "Message") 
let navVC = UINavigationController(rootViewController: vc) 
window?.rootViewController = navVC