0

我有 3 个视图控制器:Main、List 和 Run。(稍后将添加更多内容。)我正在使用故事板和转场。目标操作系统是 iOS 8。Main 是初始场景/控制器。目前,我没有使用任何导航控制器。

Main 上的按钮通过 show segue 呈现 List。根据用户交互,List 可能会使用 unwind segue 返回到 Main,或者由 Run 使用 show segue 通过 performSegueWithIdentifier 以编程方式覆盖。到目前为止,一切都很好。

一旦列表继续运行,列表将永远不会被再次使用。Run 永远不会展开到 List。

当用户存在 Run 时,会触发 unwind segue,将用户带回 Main。问题是 List 永远不会被停用。(在 swift 中,永远不会调用 List.deinit()。)在从 List 转到 Run 之前,我会小心地将所有指向 List 的指针(包括委托)都归零。如果 List 直接展开到 Main,而不显示 Run,则 List 将按应有的方式释放。

那么,我在 List-to-Run 后面跟着 Run-to-Main segues 做什么来阻止 List 被释放?

请注意,我没有使用导航控制器,因为我不需要导航栏(我知道它可以隐藏),并且因为 List 不是唯一可以继续运行的 VC;还有其他几个。

4

1 回答 1

0

通过将 Main 嵌入到导航控制器中,问题就消失了,并且所有视图控制器都在它们应该停用的时候停用。不需要其他代码更改。

我发现这个结果令人惊讶。这似乎表明导航控制器应该在大多数(全部?)故事板应用程序中使用。

于 2015-06-08T19:12:58.543 回答