gpt4 book ai didi

ios - Segue 已准备就绪,但性能无一异常(exception)地失败

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:32 25 4
gpt4 key购买 nike

我有两个 View ,A 和 B,它们之间有模态转场。 A 的 Controller 定义了 @IBAction func unwindSegue(segue: UIStoryboardSegue)

我正在尝试以编程方式执行展开转场(从 View B 返回到 A),但失败但未产生任何错误。在 View B 的 Controller 中,我调用了 performSegueWithIdentifier("unwind", sender: self) 并且可以看到调用了 func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 但是之后什么也没有发生。

我已经在 XCode 中为 unwind segue 指定了自定义名称,并且在 View B 和 C 之间具有相同的设置(使用不同的名称以避免冲突),它们可以正常工作。

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

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

enter image description here

我可以通过按钮一次从每个 View 向后退回一个,但是如果我按下按钮从 View C 或 D 返回到 View A,我将退回 View B 然后遇到目的地不正确的问题,所以无法完成遍历查看A。

最佳答案

在这里找到答案 https://spin.atomicobject.com/2015/04/23/unwind-segue-set-destination/How to unwind through multiple views without displaying intermediate views

我必须向 vc B 添加以下内容,因为从 View B 到 A 的展开选择了错误的“最近的展开”。

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

现在,如果发送者是 View C,则 segue 只会展开以将 B 视为目的地。

关于ios - Segue 已准备就绪,但性能无一异常(exception)地失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35503586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com