识别以swift模式呈现的viewcontrollers

时间:2015-04-11 13:27:00

标签: ios swift

我有2个视图控制器(viewcontroller1viewcontroller2)。 它们都具有以模态方式(分别为vc1seguevc2segue)呈现给第三个视图控制器(viewcontroller3)的segue。在viewcontroller3中,我希望能够识别哪个viewcontroller / segue用于呈现viewcontroller3,并基于哪一个在viewcontroller3中执行某些操作。

我如何识别使用了哪个viewcontroller / segue?

2 个答案:

答案 0 :(得分:2)

使用override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) 捕获segue准备并以视图控制器3现在知道发生了什么的方式微移segue目的地。

答案 1 :(得分:1)

@ Jelle的回答是一个很好的方法。以下是在viewController3's viewWillAppear中实现相同目标的另一种方法:

if let viewContr2 = self.presentingViewController as? ViewController2 {
    // ViewController2 was who performed the segue
} else if let viewContr3 = self.presentingViewController as? ViewController3 {
    // ViewController3 was who performed the segue
}

presentingViewController可以针对parentViewController进行更改,具体取决于您的架构。