我有3个视图控制器:Main,List和Run。 (稍后会添加更多内容。)我使用故事板和segues。目标操作系统是iOS 8.主要是初始场景/控制器。目前,我没有使用任何导航控制器。
Main上的按钮通过show segue显示列表。根据用户交互,List可以使用展开segue返回Main,或者通过performSegueWithIithntifier以编程方式使用show segue覆盖。到目前为止,非常好。
一旦List segues to Run,列表将永远不会再次使用。 Run永远不会放松到List。
当用户存在Run时,会触发展开segue,将用户带回Main。问题是List永远不会被停用。 (在swift中,从不调用List.deinit()。)在从List到Run的segue之前,我小心地将所有指向List(包括委托)的指针都取消。如果List直接展开为Main,而不显示Run,则会按原样释放List。
那么,我在List-to-Run中执行了什么操作,然后是Run-to-Main segues,这会阻止List被解除分配?
请注意,我没有使用导航控制器,因为我不需要导航栏(我知道它可以被隐藏),并且因为List不是唯一可以转换为Run的VC;还有其他几个。
答案 0 :(得分:0)
通过将Main嵌入导航控制器中,问题就会消失,并且所有视图控制器都会在应用时停用。不需要更改其他代码。
我发现这个结果令人惊讶。它似乎表明导航控制器应该在大多数(所有?)故事板应用程序中使用。