对 segue 源视图控制器的引用
Posted
技术标签:
【中文标题】对 segue 源视图控制器的引用【英文标题】:Reference to the segue source view controller 【发布时间】:2013-05-26 15:41:24 【问题描述】:在我的viewDidLoad
中,我想要一些基于之前控制器的自定义代码。
如何访问目标控制器的 viewDidLoad 中的 segue 源控制器或先前的 segue 标识符来处理这个问题?
【问题讨论】:
你的意思是在目标控制器中吗?你最后一句话不清楚。 【参考方案1】:没有办法获得对创建您的 segue 的引用。您可以在目标控制器中创建一个属性(在我的示例中为 sourceVC),并在 prepareForSegue 方法中(在源视图控制器中)将 self 分配给该属性:
[(DestinationVCClass *)segue.destinationViewController sourceVC] = self;
【讨论】:
【参考方案2】:您只需使用[self presentingViewController]
即可访问发出segue 的VC。对于这种情况,我通常喜欢将它与isMemberOfClass:
结合使用。
【讨论】:
这只有在 segue 是模态的情况下才有效,它不适用于推送。 这听起来像是他在谈论模态转场,但是不错的电话。 我通过调用这个方法得到了我的rootViewController,所以看起来逻辑有点破。【参考方案3】:你在目的地的 unwinding segue 方法中执行以下操作
self.source = (UIStoryboardSegue *)segue.sourceViewController;
将源定义为目标中的 UIStoryboardSegue。上面的行将给出来源或之前的转场。
【讨论】:
以上是关于对 segue 源视图控制器的引用的主要内容,如果未能解决你的问题,请参考以下文章