Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Segue已准备就绪,但性能毫无例外地失败_Ios_Swift_Segue_Uistoryboardsegue_Unwind Segue - Fatal编程技术网

Ios Segue已准备就绪,但性能毫无例外地失败

Ios Segue已准备就绪,但性能毫无例外地失败,ios,swift,segue,uistoryboardsegue,unwind-segue,Ios,Swift,Segue,Uistoryboardsegue,Unwind Segue,我有两个视图,A和B之间有一个模态分段。A的控制器已定义了@IBAction func unwindSegue(segue:UIStoryboardSegue) 我正在尝试以编程方式执行展开顺序(从视图B返回到视图A),该顺序失败而不产生任何错误。在视图B的控制器中,我调用了performsguewithidentifier(“unwind”,sender:self),可以看到func prepareforsgue(segue:UIStoryboardSegue,sender:AnyObject

我有两个视图,A和B之间有一个模态分段。A的控制器已定义了
@IBAction func unwindSegue(segue:UIStoryboardSegue)

我正在尝试以编程方式执行展开顺序(从视图B返回到视图A),该顺序失败而不产生任何错误。在视图B的控制器中,我调用了
performsguewithidentifier(“unwind”,sender:self)
,可以看到
func prepareforsgue(segue:UIStoryboardSegue,sender:AnyObject?)
被调用,但之后什么也没有发生

我已经在XCode中为“展开”序列指定了自定义名称,并且在视图B和视图C之间具有相同的设置(使用不同的名称以避免冲突),可以正常工作

编辑:展开由按钮或代码触发,按钮流工作正常。我很困惑,因为运行时可以识别segue,否则它会抛出异常-那么什么会阻止它运行呢?我已经完成了准备方法,没有任何东西阻挡我

编辑2:我注意到,从按钮和通过代码触发视图A和B之间的展开之间的区别在于目标VC。当通过按钮时,目的地是视图A,但通过代码它是C。为什么会发生这种情况?代码流是通过视图C触发的,在视图C中有一个按钮返回视图a,它只是从堆栈弹出视图的一系列展开序列

我可以通过按钮一次一个地从每个视图向后展开,但是如果我点击按钮从视图C或D返回视图a,我将展开到视图B,然后遇到目标不正确的问题,因此无法完成视图a的遍历。

在此处找到答案并

我不得不向vc B添加以下内容,因为从视图B到A的展开选择了错误的“最近的展开”

override func canPerformUnwindSegueAction(action: Selector, fromViewController: UIViewController, withSender sender: AnyObject) -> Bool {
    return fromViewController is ViewC
}

现在,如果发送者是view C,则segue将仅将B作为目的地展开。

您是否已将segue连接到viewcontroller B的出口,并从弹出窗口中选择控制器a的展开方法?如果使用导航控制器,请尝试,
self.navigationController.PerformsgueWithIdentifier
。一个想法。我使用的是一个普通的VC。你研究过这个问题吗:我认为你有一个架构/设计问题