我有一个UITabBar,目前有4个选项卡,它工作得很好。我需要导航到一组新的选项卡,就像应用程序正在进入不同的模式一样。通过navigationController推送新的UITabBar不起作用--它目前只是在旧的UITabBar之上添加一个新的UINavigationBar
,并在旧的UINavigationBar
下添加一个新的a。我是否会创建一个全新的UIWindow,其rootViewController就是我的新UITabBarController
?
@objc func startSecondStory() {
let newTabs = SecondaryTabBarController()
navigationController?.pushViewController(newTabs, animated: true)
}
代码是一个推送的UIButton的动作。我不希望新的UITabBar被推到堆栈的顶部。我更愿意把它当作一个全新的UINavigationController,把rootView当作SecondaryTabBarController。
发布于 2018-07-22 05:24:27
您可以使用(这将清除上一个)
self.navigationController?.setViewControllers([newTabs],animated:true)
//
UIApplication.shared.keyWindow?.rootViewController = newTabs
发布于 2018-07-22 05:22:29
啊,我可以用present(_:animated:completion:)。但是,我仍然想知道是否有更有效的方法来减少内存使用。我认为这只是在堆栈顶部弹出新的UITabBarController,而不是删除旧的。
https://stackoverflow.com/questions/51460123
复制相似问题