我正在一个项目中,该项目具有基于特定条件显示的两组不同的选项卡。我的问题是如何通过其UITabBarControllers最好地呈现两组不同的选项卡。
现在,该应用程序旨在使用默认的UITabBarController启动,但是当我要切换时,我对于如何最好地呈现第二个UITabBarController并完全从内存堆栈中获取第一个UITabBarController感到困惑。而且,反之亦然。切换回第一个UITabBarController是否一样?
这是从现在开始用于从第一个切换到第二个的代码。
let secondaryTabBarController = SecondaryTabBarController()
let secondaryTabs = UINavigationController(rootViewController: secondaryTabBarController)
UIApplication.shared.keyWindow?.rootViewController = secondaryTabs
答案 0 :(得分:1)
要解决您对内存的担忧,建议的方法在这方面完全可以,并且不会固有地导致任何内存泄漏。
是的,如果要切换回第一个选项卡栏控制器,则可以使用相同的方法,创建第一个选项卡栏控制器的新实例并将其设置为窗口的根视图控制器。
您可以使用具有一些内置过渡动画的UIView.transition(with:duration:options:animations:completion :)为过渡设置动画。
或者,如果您只想更改选项卡或要保留选择,则可以在UITabBarController上使用setViewControllers(viewControllers:animated:)。