【发布时间】:2020-10-14 14:16:28
【问题描述】:
问题总结
我有 HomeView,其中包含 TabView(位于 NavigationView 内,请参见下面的代码)。如果我要从另一个视图(LoginView)加载 HomeView,它会按预期加载并且一切正常。如果我尝试像这样直接加载 HomeView(代码在我的 ContentView 中):
if authService.isLoggedIn {
HomeView()
} else {
LoginView()
}
它再次加载带有底部选项卡的 HomeView,但我的第一个选项卡缺少文本,仅显示其图像。奇怪的是,如果我切换到一个标签(即点击帐户),第一个标签上的文本会再次出现。
这是我的 TabView 的代码:
NavigationView {
TabView(selection: $selected) {
PlayView()
.tabItem {
Image(systemName: "play.circle.fill")
.font(.system(size: 24))
Text("Play")
}
.navigationBarHidden(true)
.navigationBarTitle("")
.tag(1)
AccountView()
.tabItem {
Image(systemName: "person.circle.fill")
.font(.system(size: 24))
Text("Account")
}
.tag(3)
NotificationsView()
.tabItem {
Image(systemName: "bell.fill")
.font(.system(size: 24))
Text("Notifications")
}
.tag(4)
}
.accentColor(Color(K.Colors.Secondary))
.navigationBarTitle("")
.navigationBarHidden(true)
}
预期结果
实际结果
注意:注意图标是如何显示在比其他图标更低的级别,所以文本实际上根本没有显示
到目前为止我尝试了什么
我确实只尝试了几件事,因为 Apple 的官方文档中没有很好地记录 TabView。
- 我尝试在视图层次结构中上下移动 NavigationView
- 为初始选择设置另一个选项卡
- 在 .tabItem 部分中切换 Image() 和 Text() 的位置
- 通过互联网搜索类似问题
【问题讨论】:
-
这听起来像是一个 SwiftUI 错误。你试过最新的 Xcode 了吗?
-
@Asperi 我正在使用最新的稳定版本。还不愿意走这条路并使用测试版。
-
我有类似的问题,但仅限于模拟器。在设备上它工作正常。你在哪里运行你的应用程序?
-
我在模拟器和物理设备上都有这个问题。 @pawello2222
-
@Dasvil 我无法用您提供的代码重现问题。