有没有办法让一个按钮退回到特定的视图控制器?例如,假设我有ViewController A和B.两者都模态地转换为ViewController C.现在我理解如何将unvwind放回到之前的一个视图控制器(As was explained here)但是如何返回到特定的视图控制器提出VC C?
总而言之,我想弄清楚的是...... 如果A被A语言封锁,那么我想在选择按钮时退回到A.如果B伪装成C,那么我想在选择按钮时退回到B.
答案 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)
}
}