确定从当前UIViewController被加载的UIViewController

问题描述:

我有一个主要的UIViewController它有一个嵌入式导航控制器。我有两个额外的UIViewController s,它们是通过push segues从主要的UIViewController启动的。当用户从这两个视图控制器中的一个导航到主UIViewController时,我想确定用户从哪个UIViewController导航。我如何获得这些信息?确定从当前UIViewController被加载的UIViewController

+0

也许如果你让我们知道你的总体目标是什么,我们可以提供更好的解决方案。这很可能是你试图建立一个基于viewController的动态viewcontroller来推送它。如果是这种情况,那么只需将一个变量传递给推送的viewcontroller,并将其作为viewsetup的决定性因素,而不是试图确定父ViewController是谁,因为这可以随时更改导航更改:) – Pavan

+0

我需要做一些当用户从推送的UIViewController之一返回时,在我的主UIViewController中执行动作。 –

+0

Gotcha。所以你有两个父视图控制器调用相同的viewcontroller可以称它为VCB,并且你在VCB上做了一些事情,它应该向最初推送VCB的相应parentViewController发送一个动作? – Pavan

我能想到的两种方法:在两个subviewControllers

1-使用授权,并使用主要作为delegate处理。

2-对两个subviewControllers使用viewWillDisappear,并通过类似self.presentedController.yourValue

希望改变主视图控制器上的价值,这是有道理:)

您可以杰里钻机这一点,但“正确”在objective-c领域做到这一点的方法是使用委托或NSNotificationCenter。在这种特殊情况下,我认为NSNotificationCenter可能是最简单的...这里有一个很好的例子:Send and receive messages through NSNotificationCenter in Objective-C?