0

我试图在我的应用程序的某些页面上隐藏标签栏。根据此解决方案,我正在使用带有 Introspect 的 SwiftUI 。它可以完美地隐藏标签栏,但隐藏的标签栏仍然占用页面空间。

我想删除隐藏标签栏占用的空间 - 有没有办法做到这一点?

我尝试了一些 hacky 方法,例如设置偏移量或负填充,或者使用 edgesIgnoringSafeArea 然后重新添加填充,但这些似乎并不理想。

我也尝试使用“hidesBottomBarWhenPushed”,因为这是我希望达到的整体效果,但我没有找到一种方法来成功地使用 Introspect。

import SwiftUI
import Introspect

struct ContentView: View {
    var body: some View {
        TabView {
            NavigationView {
                View1()
            }
            .tabItem {
                Label("Calendar", systemImage: "calendar")
            }
        }
    }
}


struct View1: View {
    var body: some View {
        NavigationLink(
            destination: DestinationView(),
            label: {
                Text("Navigate")
            })
    }
}

struct DestinationView: View {
    var body: some View {
        ZStack {
            Color.yellow
            VStack {
                Spacer()
                Text("Bottom of content")
            }
        }
        .introspectTabBarController { (UITabBarController) in
            UITabBarController.tabBar.isHidden = true
        }
    }
}
4

0 回答 0