我有两个故事板第一个故事板rootviewcontroller包含两个容器 每个容器都指向 1)首先将segue嵌入到视图控制器中,视图控制器又包含到其他视图控制器的容器。 2)第二次嵌入segue到其他故事板
在应用程序首次启动时,我们将转到第一个流程,登录一旦登录成功,我将通过从当前容器中删除所有视图来调用执行segue到其他故事板。
但是当我移动到具有自己的导航控制器的其他故事板时,所有视图控制器都没有释放。
答案 0 :(得分:0)
我不确定我明白你说删除所有观点而不是......所以你的意思是什么......
如果我的问题是正确的,那么您使用两个故事板来支持两个应用流程。
流程1.应用注册流程
流程2.(应用程序已经注册)所以请在注册后直接进入屏幕
您不需要有两个具有相同工作的独立故事板,只是因为它是一个单独的流程。
在appDelegate上检查您是否以编程方式注册并更改了根视图控制器,以便用户跳转到右侧屏幕。
注意:您必须向可选的根视图控制器添加标识符
self.window?.rootViewController = mainStoryboard?.instantiateViewControllerWithIdentifier("tabBarVCID")
如果没有调用deinit,您可能会有一个强大的参考周期 这可以防止VC的释放
在The Swift Programming Language: Automatic Reference Counting的“解析类实例之间的强引用循环”部分中,Apple介绍了如何解决此问题:
Swift提供了两种方法来解决强引用周期 使用类类型的属性:弱引用和无主 引用。
弱引用和无主引用在引用周期中启用一个实例 引用另一个实例而不保持强势。 然后,实例可以在不创建强大的情况下相互引用 参考周期。