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