【问题标题】:Deallocate UIViewController after SegueSegue 后释放 UIViewController
【发布时间】:2016-12-09 15:21:35
【问题描述】:

我想从一个视图控制器过渡到另一个,但没有任何动画。在情节提要上,我选择了 Push segue 并在右侧面板上取消选中“动画”选项。然后在代码中,每当我想进行转换时,我都会这样做: self.performSegueWithIdentifier("TestSegue", sender: nil)

现在的问题是以前的视图控制器没有被释放并且内存不断增加。

问题:

1) 我在没有动画的情况下使用 segues 的方法是否正确?

2) 执行 segue 后如何从内存中释放视图控制器?

请帮我解决这些问题。

注意:我使用的是 Swift

【问题讨论】:

  • 当您返回导航时,它是否在增加?你用放松吗?
  • 不,只是另一个推动 Segue。我应该使用 unwinding 吗?

标签: ios swift


【解决方案1】:

我不认为这是您对另一个 ViewController 执行 segue 的方式的问题。我认为您在某处对第二个 ViewController 有很强的参考,您正在执行一个不让 ARC 释放 ViewController 的 segue。

发布整个代码,以便我更好地分析可能出现的问题。

【讨论】:

    【解决方案2】:

    如果你使用除了 push 之外的某种类型的 segue,那么之前的视图控制器将自动被释放。尝试像这样呈现视图控制器:

    let vc = self.storyboard?.instantiateViewControllerWithIdentifier("myVC") as! MyVCName
    self.presentViewController(vc, animated: false, completion: nil)
    

    【讨论】:

    • 按照你的方法,会有动画吗?我希望在没有任何动画的情况下进行过渡。
    • 无动画...为动画传递false:参数表示无动画
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多