呈现新的 ViewController 后 Deinit UITabBarController
Posted
技术标签:
【中文标题】呈现新的 ViewController 后 Deinit UITabBarController【英文标题】:Deinit UITabBarController after presenting new ViewController 【发布时间】:2017-08-28 20:33:02 【问题描述】:我有一个用户可以登录的应用程序。如果用户启动该应用程序并且已经登录,则 rootViewController
设置为我的自定义 UITabBarController
但当用户未登录时 rootViewController
设置为 LoginVC(视图控制器)。我的问题是,当用户注销时,应该显示 LoginVC,并且应该取消初始化 TabBar。
我试过了:
self.tabBarController?.dismiss(animated: true, completion:
self.tabBarController?.present(LoginVC(), animated: true, completion: nil)
)
诸如此类...
我可以展示 LoginVC 但是当我打电话给self.tabBarController?.dismiss
LoginVC 被解雇而不是 TabBarVC
任何帮助将不胜感激
【问题讨论】:
【参考方案1】:最好将rootViewController
设置为LoginVC
。对UITabBarController
的引用将丢失,并将取消初始化。
在 VC 上调用 dismiss
不会关闭该 VC。它解散了它正在呈现的 VC:
https://developer.apple.com/documentation/uikit/uiviewcontroller/1621505-dismiss
关闭视图控制器以模态方式呈现的视图控制器。
【讨论】:
有没有办法为过渡设置动画? ***.com/questions/7703806/…以上是关于呈现新的 ViewController 后 Deinit UITabBarController的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式呈现新的 ViewController [Swift 3]
如何在不知道新的 VC 的情况下将 ViewController 呈现在另一个之上?
当 ViewController 被呈现的 ViewController 覆盖时触发事件
在 UISplitViewNavigator 的 MasterViewController 上呈现 ViewController