确定从当前UIViewController被加载的UIViewController
问题描述:
我有一个主要的UIViewController
它有一个嵌入式导航控制器。我有两个额外的UIViewController
s,它们是通过push segues从主要的UIViewController
启动的。当用户从这两个视图控制器中的一个导航到主UIViewController时,我想确定用户从哪个UIViewController
导航。我如何获得这些信息?确定从当前UIViewController被加载的UIViewController
答
我能想到的两种方法:在两个subviewControllers
1-使用授权,并使用主要作为delegate
处理。
2-对两个subviewControllers
使用viewWillDisappear
,并通过类似self.presentedController.yourValue
希望改变主视图控制器上的价值,这是有道理:)
答
您可以杰里钻机这一点,但“正确”在objective-c领域做到这一点的方法是使用委托或NSNotificationCenter。在这种特殊情况下,我认为NSNotificationCenter可能是最简单的...这里有一个很好的例子:Send and receive messages through NSNotificationCenter in Objective-C?
也许如果你让我们知道你的总体目标是什么,我们可以提供更好的解决方案。这很可能是你试图建立一个基于viewController的动态viewcontroller来推送它。如果是这种情况,那么只需将一个变量传递给推送的viewcontroller,并将其作为viewsetup的决定性因素,而不是试图确定父ViewController是谁,因为这可以随时更改导航更改:) – Pavan
我需要做一些当用户从推送的UIViewController之一返回时,在我的主UIViewController中执行动作。 –
Gotcha。所以你有两个父视图控制器调用相同的viewcontroller可以称它为VCB,并且你在VCB上做了一些事情,它应该向最初推送VCB的相应parentViewController发送一个动作? – Pavan