Segue Unwind回到最后一个特定的View控制器

时间:2013-04-14 19:32:03

标签: objective-c xcode uiviewcontroller storyboard segue

有没有办法让一个按钮退回到特定的视图控制器?例如,假设我有ViewController A和B.两者都模态地转换为ViewController C.现在我理解如何将unvwind放回到之前的一个视图控制器(As was explained here)但是如何返回到特定的视图控制器提出VC C?

总而言之,我想弄清楚的是...... 如果A被A语言封锁,那么我想在选择按钮时退回到A.如果B伪装成C,那么我想在选择按钮时退回到B.

2 个答案:

答案 0 :(得分:4)

您应该使用标准方式从模态segue返回。把它放在你的“后退”按钮......

[[self presentingViewController] dismissViewControllerAnimated:YES];

这不会使用storyboard或segue作为返回,只是代码。

答案 1 :(得分:0)

你可以使用presentViewController' title'将展开过程引导到所需的原始ViewController的属性。此解决方案还允许您将数据从ViewController C传递到ViewControllers A和B.

1)选择ViewController A的storyboard画布顶部的View Controller按钮(黄色按钮)。

2)在Attributes Inspector(View Controller部分)中,为ViewController A提供一个标题。

3)在ViewController A中包含以下代码:

@IBAction func returned(segue: UIStoryboardSegue) {
   // Don't need any code here 
}

4)对ViewController B重复步骤1,2和3。

5)在ViewController C中覆盖prepareForSegue函数,如下所示:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {   
    if self.presentingViewController!.title! == "ViewControllerATitle" {
        let destination = segue.destinationViewController as! ViewControllerA
        destination.someFunction(someArgument)
    } 
    else if self.presentingViewController!.title! == "ViewControllerBTitle" {
        let destination = segue.destinationViewController as! ViewControllerB
        destination.someFunction(someArgument)
    }
}