获取导航控制器显示在标签栏控制器中

时间:2016-12-26 02:03:45

标签: swift uitabbarcontroller

我曾经有过一个设计设置,当我的用户收到推送通知时,他们会点击它,我会找到最后一个正在呈现的导航控制器并推送一些内容。

我最近将所有导航控制器都放在标签栏内,不知道如何找到标签栏内的导航控制器,以便我可以推送它......这就是我以前的所有......

    if var window = UIApplication.shared.keyWindow?.rootViewController {

         while window.presentedViewController != nil {
             if let current =  window.presentedViewController as? UINavigationController{  
                    window = current 
                   }
             }
    }

if let window = window as? UINavigationController {
         window.pushViewController(vc, animated: true)
     }

如果现在我的窗口最终成为标签栏控制器而不是之前显示的最后一个导航控制器,我该如何才能使用?

由于

1 个答案:

答案 0 :(得分:2)

得到了.....

if let tabBar = UIApplication.shared.keyWindow?.rootViewController as? UITabBarController, var window = tabBar.selectedViewController as? UINavigationController {

         while window.presentedViewController != nil {
             if let current =  window.presentedViewController as? UINavigationController{  
                    window = current 
                   }
             }
    }

       window.pushViewController(vc, animated: true)

像以前一样工作......谢谢