如何从 App 委托导航内部视图控制器

Posted

技术标签:

【中文标题】如何从 App 委托导航内部视图控制器【英文标题】:How to navigate Inner view controller from App delegate 【发布时间】:2016-06-27 04:50:27 【问题描述】:

在我的应用委托中,这是我导航到 SWRevealViewController 的方式

let revealViewController = mainStoryboard.instantiateViewControllerWithIdentifier("RevealView") as? SWRevealViewController


        self.window!.rootViewController = revealViewController
        self.window?.makeKeyAndVisible()

我像这样从SWRevealViewControllerFrontViewcontroller 导航到那个内部视图控制器。

let secondViewController = self.storyboard?.instantiateViewControllerWithIdentifier("Read") as! ReadViewController
        secondViewController.title = self.selectedTitle
        self.navigationController?.pushViewController(secondViewController, animated: true)

现在在AppDelegate 收到推送通知时,我想导航这个ReadViewController。当我单击后退按钮时,它应该回到FrontViewController,就像它以正常方式发生一样。如何在AppDelegate 的通知代表中执行此操作 请帮我。 谢谢

【问题讨论】:

【参考方案1】:

试试这个:

let yourVC = mainStoryboard.instantiateViewControllerWithIdentifier("Read") as! ReadViewController

let frontViewController = mainStoryboard.instantiateViewControllerWithIdentifier("frontViewController") as! FrontViewController

let navController = UINavigationController()
navController.viewControllers  = [yourVC,frontViewController]

self.window!.rootViewController = navController
self.window?.makeKeyAndVisible()

【讨论】:

以上是关于如何从 App 委托导航内部视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

从应用程序委托获取当前视图控制器(模式是可能的)

导航堆栈之前视图之间的协议委托

从委托类调用视图控制器方法,有问题

如何从导航堆栈中推送/弹出uiviewcontroller时收到警报

我在应用程序委托中加载的视图控制器(在导航控制器中)与标签栏重叠

如何使用委托从数据源中删除对象