如何使用 UINavigationController 将 UIViewController 推送到 CurrentContext

How to push UIViewController overCurrentContext using UINavigationController

我有一个包含 UITabBar 的 UIViewController。我想推送一个覆盖当前上下文的新 UIViewController(因此在动画期间它显示覆盖 UITabBar 的新 UIViewController)。我该怎么做?

我试过使用以下方式推送视图,但这并没有推送到 UITabBar。

let vc = ViewController2()
vc.modalPresentationStyle = .overFullScreen
navigationController?.pushViewController(vc, animated: true)

我还想也许我可以在 ViewController2 的 viewWillAppear 上隐藏 UITabBar 并在它的 viewWilDisappear 上显示它;然而,这只会让 UITabBar 在关闭的过程中出现(如果你慢慢滑动关闭视图看起来真的很糟糕)。

您必须使用 presentViewController,而不是推送。

在 Storyboard 中,转到您要推送的 UIViewController。 转到属性检查器并选中“Hide Bottom Bar on Push”

这也可以通过编程方式完成:

let vc = viewController1()
vc.hidesBottomBarWhenPushed = true
navigationController?.pushViewController(vc, animated: true)

希望对您有所帮助!