我有一个Navigationcontroller,在这下我有一个控制器A作为rootviewcontroller,而控制器B通过默认的推送命令链接到A。

我想要做的是当在B中按下某些操作时,我将要求导航控制器弹出到rootviewcontroller(即A),然后在A上方应用一些popovercontroller(或只是另一个视图或另一个窗口)。

有人建议我要求appdelegate在当前uiwindow顶部创建另一个窗口。我认为这是可能的,我想知道是否有任何更简单/更优雅的解决方案来解决此问题。

我可以做的一般解决方案将不胜感激,而Swift中的一些简单代码示例将更受赞赏:P

最佳答案

我将在这里提供自己的答案。

根据我自己的经验,没有弹出的segue,因此我们无法从segue确切地获取目标视图控制器。但是,UINavigationController具有viewControllers属性,该属性基本上是堆栈上的所有子控制器。

因此在popToRootViewController之前,只需获取VC,但调用self.nagivationController.viewControllers [0],您便已经获得了根视图控制器

09-30 23:47