【问题标题】:Toolbar does not appear properly SwiftUI工具栏未正确显示 SwiftUI
【发布时间】:2020-11-19 15:29:33
【问题描述】:

在我的 GeneralView 中,我有一个 NavigationView 和一个 Tab View。 在每个 tabItem 中,我使用一些 ZStack 进行导航(使用 zIndex,隐藏和显示项目)

随机前导和尾随项目未正确显示且无法单击。 见下文,屏幕顶部的后退按钮未满。但我选择相同的按钮继续“Coureur1View” 信息:我对这个导航没有任何其他问题。

在我的一般视图中:

 .toolbar {
            ToolbarItemGroup(placement: .principal) {
                TitleBarView().environmentObject(objCourse)
            }}
        .navigationBarItems(leading: TitleBarLeadingView(), 
                          trailing: TitleBarTrailingView())

TitleBarView(原则)没有问题,但前导和尾随 在我的 TitleBarLeadingView 中:

struct TitleBarLeadingView: View {
    @EnvironmentObject var objGroupe : GroupeActuel
    @EnvironmentObject var objCourse : CourseActuelle
    @EnvironmentObject var zindex : Zindex

var body: some View {
    HStack {
        if zindex.selectedTab > 0 {
             if zindex.detailCoureurVisible {
                Button{
                    zindex.detailCoureurVisible = false
                } label : {
                    Image(systemName: "chevron.backward")
                    Text("Back")
                }.foregroundColor(.orange)
                
            }else{
                EmptyView()
            }else{
                EmptyView()
            }
    }
}

【问题讨论】:

    标签: swiftui toolbar titlebar


    【解决方案1】:

    提供的快照是不可测试的,所以只是想法 - 尝试强制重新创建导航栏项目。它可以是一些已知的更改值(我在 gif 上看到标题已更改),但也可以仅通过 UUID():

    .navigationBarItems(leading: TitleBarLeadingView().id(UUID()), 
                      trailing: TitleBarTrailingView().id(UUID()))
    

    注意:make .id(param) 更可取,因为根据 UUID,每次刷新都会重新创建它。

    【讨论】:

      猜你喜欢
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      相关资源
      最近更新 更多