工具栏未正确显示 SwiftUI
Posted
技术标签:
【中文标题】工具栏未正确显示 SwiftUI【英文标题】:Toolbar does not appear properly 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()
【问题讨论】:
【参考方案1】:提供的快照是不可测试的,所以只是想法 - 尝试强制重新创建导航栏项目。它可以是一些已知的更改值(我在 gif 上看到标题已更改),但也可以仅通过 UUID():
.navigationBarItems(leading: TitleBarLeadingView().id(UUID()),
trailing: TitleBarTrailingView().id(UUID()))
注意:make .id(param)
更可取,因为根据 UUID,每次刷新都会重新创建它。
【讨论】:
以上是关于工具栏未正确显示 SwiftUI的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI:如何使用语义放置呈现多个 ToolbarItem?