首页 > 解决方案 > SwiftUI 在子视图中隐藏 TabBar

问题描述

我正在使用 SwiftUI,但 TabBar 存在一些问题。我想隐藏特定子视图上的 TabBar。

试过了

UITabBar.appearance().isHidden = true

它仅适用于 TabView 中的直接视图。但是当我将它放在子视图中时它不起作用。

有没有人解决这个问题?

谢谢。

标签: swiftxcodeswiftuiios13

解决方案


iOS 14

安装 Introspect SwiftPM:https ://github.com/siteline/SwiftUI-Introspect

struct SomeView: View{
    
    @State var uiTabarController: UITabBarController?
    
    var body: some View {
        List {
            -your code here-
        }
        
        .navigationBarTitle("Title", displayMode: .inline)
        .introspectTabBarController { (UITabBarController) in
            UITabBarController.tabBar.isHidden = true
            uiTabarController = UITabBarController
        }.onDisappear{
            uiTabarController?.tabBar.isHidden = false
        }
    }
}

在这段代码中uiTabarController,我们引用了UITabarController. 当我们回去时,我们Tabar再次启用。所以,这就是为什么需要这样做。


推荐阅读