导航视图格式化 自定义的UITabBarController内部。

问题描述 投票:0回答:1

我创建了一个自定义的UITabBarController来避免SwiftUI标签栏的一些不足。查看更多 此处. 这里是我实现它的地方。

import SwiftUI

struct HomeView: View {

    @EnvironmentObject var appState: AppState

    var body: some View {


            UITabBarWrapper([
                TabBarElement(tabBarElementItem:
                    TabBarElementItem(title: "Learn", systemImageName: "book")) {
                        NewsView()
                },


                TabBarElement(tabBarElementItem:
                    TabBarElementItem(title: "Matches", systemImageName: "heart")) {

                        MatchesTab().environmentObject(AppState())

                },

                TabBarElement(tabBarElementItem:
                    TabBarElementItem(title: "Account", systemImageName: "person")) {
                        ProfileView()
                }


            ])
            .frame(maxHeight: .infinity)
            .edgesIgnoringSafeArea(.top)
    }
}

在这里我实现了: MatchesTab() 是一个 NavigationView:

import SwiftUI

struct MatchesTab: View {

    @EnvironmentObject var appState: AppState

    @State private var showingCandidate = false

    var body: some View {
        NavigationView {
            if self.appState.hasTakenQuiz {
                MatchesTabDefaultView()
                    .transition(.opacity)
                    .animation(.default)

            } else {
                SplashView()

            }
        }
    }
}

由于某些原因,这个灰色空间出现在嵌入的 MatchesTab:

enter image description here

另一个要注意的问题是:问题似乎是出在《公约》上。NavigationView. 当它被移除时,灰条会消失

这似乎是源于 UINavigationController:enter image description here

swift uikit swiftui bottomnavigationview uitabview
1个回答
0
投票

我可以告诉你如何自己回答这个问题......

要想知道那个灰色区域是什么,只需点击它(在模拟器上,或者在你的设备上,如果你在Xcode上运行应用程序),翻到Xcode......

Open Debugger从顶部菜单选择DebugView DebuggingCapture View Hierarchy。

右键点击字段(应该很容易找到,因为你刚刚选择了它)。

选择 "在调试导航器中显示"。

Reveal in Navigator

现在你可以点击左侧的任何东西来了解更多...Debug on left

© www.soinside.com 2019 - 2024. All rights reserved.