swift - 带有案例而不是 int 的 TabBar - SwiftUI
问题描述
我正在尝试从我之前提出的问题中重用一些旧代码并且它不再工作了,引擎盖下发生了什么吗?
当我在应用程序午餐时,TabBar 转到索引 0 而不是 2。这是我当前的代码:
struct iOS_TabBarView: View {
@State private var selectedTab: HostingBarCategories = .Screen3
var body: some View {
TabView(selection: $selectedTab) {
Text("1")
.tag(0)
.tabItem {
Image(systemName: "pencil.and.outline")
Text("1")
}
Text("2")
.tag(1)
.tabItem {
Image(systemName: "checkmark")
Text("2")
}
Text("3")
.tag(2)
.tabItem {
Image(systemName: "calendar.circle.fill")
Text("3")
}
Text("4")
.tag(3)
.tabItem {
Image(systemName: "flame")
Text("4")
}
Text("5")
.tag(3)
.tabItem {
Image(systemName: "slider.horizontal.3")
Text("5")
}
}
}
}
和 HostingBarCategories:
enum HostingBarCategories: Hashable, CaseIterable {
case Screen1
case Screen2
case Screen3
case Screen4
case Screen5
var string: String { String(describing: self) }
}
这是怎么回事?
谢谢
解决方案
我假设标签和选择应该是相同的类型,所以试试
struct iOS_TabBarView: View {
@State private var selectedTab: HostingBarCategories = .Screen3
var body: some View {
TabView(selection: $selectedTab) {
Text("1")
.tag(HostingBarCategories.Screen1) // << like this for all !!
推荐阅读
- architecture - Keycloak next/behind Kong - 优点和缺点
- python - Python 函数上的 Spark UDF
- javascript - Vuex Getters 不调用状态
- javascript - 在 React Native 中没有与此调用匹配的重载
- android - 创建动态约束布局
- android - 删除所有导航回栈
- c++ - C++ Segmentation fault while dereferencing a void pointer to a vector
- javascript - 切换到下一个元素时禁用语义 UI 下拉选项
- java - ThreadLocal 变量没有改变
- java - Netbeans 和 Java FX - 未运行 - 请提供帮助