【发布时间】:2018-12-04 00:29:46
【问题描述】:
我有两个UIViewController。第一个是欢迎屏幕,第二个是登录屏幕(位于导航控制器内)。用户可以使用返回按钮从登录屏幕返回欢迎屏幕,因此登录屏幕以self.present(LoginViewController(),animated: false) 打开,在登录屏幕之后,最终UIViewController 以appDelegate.window?.rootViewController = FinalViewController() 打开。
我的问题是 LoginViewController 或 WelcomeViewController 在这种情况下都没有 deinit。但是,如果我;
- 直接从
WelcomeViewController打开FinalViewController(通过更改RootViewController),而不显示LoginViewController。 - 打开
LoginViewController而不显示WelcomeViewController然后打开FinalViewController(再次更改 RootViewController)
控制器已取消。所以我认为任何视图控制器都没有保留周期与..
我想在打开最终控制器后取消登录和欢迎屏幕。
编辑:我发现将它放在 NavigationController 中会阻止定义。
EDIT2: 如果我在更改 rootViewController 之前调用 self.dismiss(animated: false, completion: nil)。所有控制器似乎都被取消了,但我不确定这是否会是一个更好的答案。
【问题讨论】: