2013-05-30 163 views
9

在我的viewDidLoad我想要一些基于前一个控制器的自定义代码。参考segue源视图控制器

如何访问segue源控制器或目标控制器的viewDidLoad中的前一个segue标识符来处理此问题?

+1

你的意思是在目标控制器?你最后一句话不清楚。 – rdelmar

回答

7

没有办法获得创建你的segue的引用。你可以在目标控制器创建一个属性(sourceVC在我的例子),并指定自己到这个属性在prepareForSegue方法(在源视图控制器):

[(DestinationVCClass *)segue.destinationViewController sourceVC] = self; 
+0

谢谢你明白了 – StuartM

5

您可以使用[self presentingViewController],您将可以访问发布该segue的VC。我通常喜欢将它与isMemberOfClass:结合起来处理这种情况。

+1

这只有在赛格模式的情况下才有效,它不适用于推送。 – rdelmar

+0

这听起来像是他正在谈论一个模态赛格,但是好的电话。 –

+0

我通过调用这个方法来得到我的rootViewController,所以它看起来逻辑有点坏。 – Bob

0

你在平仓SEGUE方法如下在目的地

self.source = (UIStoryboardSegue *)segue.sourceViewController; 

将来源定义为UIStoryboardSegue在目的地。上面的行会给出源码或以前的segue。

相关问题