【问题标题】:ViewController not release when come back from segue从 segue 回来时 ViewController 不释放
【发布时间】:2016-06-02 00:50:58
【问题描述】:

我正在使用 swift 以编程方式执行 segue。首先,我在故事板中的两个控制器之间创建了一个转场。下面是显示视图控制器的代码:

self.performSegueWithIdentifier("EditImage", sender: imageSampleBuffer)

执行上述代码时,UI 上会出现一个新的控制器视图。然后我点击左上角的“返回”按钮。用户界面将返回到之前的视图。它在这里工作正常。但是当我用仪器分析我的应用程序时,我发现控制器(由“EditImage”segue 指向)没有释放。当我点击仪器上的控制器实例时,它显示上面的代码正在引用这个控制器实例。当我来回执行这两个控制器时,该控制器的实例数不断增加。我没有为“后退”按钮创建任何操作功能。全部使用导航控制器的默认逻辑。那么回来时如何释放控制器呢?我应该在返回操作上编写任何代码吗?

【问题讨论】:

    标签: ios iphone memory uiviewcontroller segue


    【解决方案1】:

    在尚未发布的 UIViewController 中添加一个deinit 方法并在那里添加一个断点,您会发现是否有任何其他对象将该引用表单保留在外面。任何公共变量都可以保留该引用,这就是为什么所有代表都应该有弱引用。 example

    【讨论】:

      【解决方案2】:

      我确实在我的代码中发现了一个参考问题。我在 viewDidDisappear() 方法中清除了该引用,然后它工作正常。但是我不明白为什么仪器没有给我正确的位置来保存我的控制器实例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 2016-12-09
        • 2018-11-08
        • 2020-09-03
        • 1970-01-01
        相关资源
        最近更新 更多