参考转场来源视图控制器。

9
在我的viewDidLoad中,我想根据前一个控制器来编写一些自定义代码。如何在目标控制器的viewDidLoad中访问segue源控制器或上一个segue标识符以处理这个问题?

1
你的意思是在目标控制器中吗?你的最后一句话不太清楚。 - rdelmar
3个回答

7

无法获取创建你的segue的引用。您可以在目标控制器中创建一个属性(例如我的示例中的sourceVC),并在prepareForSegue方法(在源视图控制器中)中将self分配给此属性:

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

5

您只需使用 [self presentingViewController],即可访问发出Segue的视图控制器。在这种情况下,我通常喜欢将其与isMemberOfClass: 配对使用。


1
这只适用于Segue是模态的情况,对于推送不起作用。 - rdelmar
听起来他在谈论模态转场,不错的判断。 - Tommy Devoy
我通过调用这个方法来获取我的rootViewController,所以似乎逻辑有点错误。 - Bob

0
在目标视图控制器的“取消展开动作segue”方法中,按照以下步骤进行操作:
self.source = (UIStoryboardSegue *)segue.sourceViewController;

在目标视图控制器中将源视图控制器定义为一个UIStoryboardSegue。上述代码行将提供源视图控制器或前一个segue。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接