我有一个UITabBar,当前有4个标签,效果很好。我需要导航到一组新的选项卡,就像该应用程序正在进入其他模式一样。通过navigationController推送新的UITabBar不起作用–当前,它只是在旧的UITabBar上添加新的UITabBar,并在旧的UITabBar下添加新的UINavigationBar
。我是否将创建一个全新的UIWindow,其rootViewController是我的新UITabBarController
?
@objc func startSecondStory() {
let newTabs = SecondaryTabBarController()
navigationController?.pushViewController(newTabs, animated: true)
}
代码是按下的UIButton的操作。我不希望将新的UITabBar推入堆栈顶部。我更喜欢将它作为一个全新的UINavigationController,并将rootView作为SecondaryTabBarController。
答案 0 :(得分:0)
嗯,我可以只使用present(_:animated:completion :)。但是,我仍然想知道是否有更有效的方法来减少内存使用。我认为这只是将新的UITabBarController弹出堆栈而没有删除旧的。
答案 1 :(得分:0)
您可以使用(这将清除上一个)
self.navigationController?.setViewControllers([newTabs],animated:true)
//
UIApplication.shared.keyWindow?.rootViewController = newTabs