【问题标题】:Navigation View formatting Inside of custom UITabBarController自定义 UITabBarController 内部的导航视图格式
【发布时间】:2020-05-09 20:12:52
【问题描述】:

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

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下:

另外需要注意的是:问题似乎与NavigationView 有关。删除后,灰色条消失

它似乎源于UINavigationController

【问题讨论】:

    标签: swift uikit swiftui bottomnavigationview uitabview


    【解决方案1】:

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

    要弄清楚那个灰色区域是什么,只需点击它(在模拟器上,或者如果您从 Xcode 在其上运行应用程序,则在您的设备上),翻转到 Xcode...

    从顶部菜单中选择 Debug/View Debugging/Capture View Hierarchy

    在该字段上单击鼠标右键(应该很容易找到,因为您刚刚选择了它)

    选择“在调试导航器中显示”

    现在您可以单击左侧的任何内容以了解更多信息...

    【讨论】:

    • 感谢您的帮助。实际上,我已经剖析了 View 层次结构,它源于 UINavigationController(导航视图)。我在原始帖子中添加了屏幕截图。
    • 这是否有助于解决问题?我不确定为什么会这样。当我删除NavigationView 时,一切都很好。问题是我需要那个导航视图。
    猜你喜欢
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多