【问题标题】:Do modal segues create new objects?模态序列会创建新对象吗?
【发布时间】:2012-01-25 14:52:58
【问题描述】:

我通过使用模态 segue 从一个视图控制器转换到另一个 UINavigationController。对我来说,这个视图控制器(及其子视图控制器)保留在内存中以便保持特定的引用很重要。尽管显然这并没有发生。在调试viewWillAppear 函数时,rootViewController (viewControllers[0]) 引用指向调用之间的不同内存地址(并且包含 nil 值,我的实际问题)。 现在有两种可能导致此问题:

  • UiNavigationController 被销毁
  • rootViewController 被销毁

但更令人困惑的是,它们都没有发生; UINavigationController 和 rootViewController 都没有被破坏(未调用 viewDidUnload!)。

编辑:进一步调查发现 UINavigationController 确实为每个模态转场重新创建。我希望通过维护一个属性我可以解决问题。

【问题讨论】:

    标签: ios modalviewcontroller segue uistoryboard


    【解决方案1】:

    我最终创建了自己的 IBAction 函数,手动呈现控制器。这工作得很好,并且在不到 5 分钟的时间内完成了编码。只需在情节提要的 ViewDidLoad 上初始化一次控制器。

    【讨论】:

      【解决方案2】:

      在主视图控制器中创建一个强引用,并将您的新视图控制器指向该属性。这将根据需要保留视图,尽管不建议在 n 个视图中这样做,因为它违背了导航控制器处理其自己的视图创建和删除的目的。

      【讨论】:

        猜你喜欢
        • 2014-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-18
        • 2021-06-25
        • 2017-09-03
        相关资源
        最近更新 更多