gpt4 book ai didi

ios - 展开多个导航 Controller

转载 作者:行者123 更新时间:2023-11-28 06:06:31 25 4
gpt4 key购买 nike

假设我在导航 Controller 中嵌入了 View Controller A、B 和 C。在 C 中,我为单独的逻辑流程提供了一个新的导航 Controller ,但需要在完成后返回到 A。所以应用程序流程如下:A->B->C -- 模态呈现新的导航 Controller -- D->E->F。然后从F回到A。

我已经设置了一个 unwind segue,然而,unwind segue 只带我回到 D,即使我已经设置它返回到 A。

我怎样才能让它一直放松回到 A?我错过了什么我看不到的东西吗?谢谢。

A 内部:

    @IBAction func unwindToHome(segue:UIStoryboardSegue){}

然后我从 F 控制拖动到它的“导出”并选择我在 A 中创建的展开转场,并写下这个转场代码:

    private let SEGUE_TO_HOME = "unwindToHome"
performSegue(withIdentifier: SEGUE_TO_HOME, sender: nil)

最佳答案

当您展开时,它应该返回 View Controller 链,通过所有这些导航 Controller 和模态呈现,一直到实现此展开操作的 View Controller 。

unwindToHome 是否可能出现在 A 以外的任何 View Controller 中?这是我能看到展开操作不会将您一路送回 A 的唯一方法。我想知道,例如,D 是否有自己的 unwindToHome 操作(或者可能是另一个与 A 相同类型的实例)。最重要的是,除非通过类似的方式,否则我无法重现您描述的行为。

您随后问:

I have put a deinit method in all of the above view controllers. I only print the word gone in all of them. when it unwinds back to A, 'gone' is only printed twice. Doesn't the unwind segue deallocate all instances?

是的,它们都应该被释放。如果不是,“调试内存图”debug memory graph button (参见 https://stackoverflow.com/a/30993476/1271826 )非常擅长展示对未释放的对象保持强烈引用的内容。最有可能的是,这些未释放的 View Controller 有一些挥之不去的强引用循环、重复计时器引用,或类似的东西分别保持对每个 View Controller 的强引用。

关于ios - 展开多个导航 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48046730/

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