【问题标题】:How to set a default Tab in SwiftUIs TabView?如何在 SwiftUIs TabView 中设置默认选项卡?
【发布时间】:2020-01-08 04:14:12
【问题描述】:

我在SwiftUI 中有一个TabView,并希望在启动应用程序时将第二个选项卡设为默认选项卡。

我还没有找到任何文档来提供这种行为,但它应该是可能的。大多数应用程序都将中间选项卡作为默认选项卡。

TabView {
    QuestionView()
        .tabItem {
            Image(systemName: "questionmark")
            Text("Questions")
        }
    DataView()
        .tabItem {
            Image(systemName: "chart.bar.fill")
            Text("Data")
        }
    Text("Empty Tab right now")
        .tabItem {
            Image(systemName: "bolt.horizontal.fill")
            Text("Trend")
        }
}

【问题讨论】:

    标签: swift swiftui tabview


    【解决方案1】:
    @State private var selection = 3
    
    TabView(selection:$selection) {
         QuestionView()
              .tabItem {
                  Image(systemName: "questionmark")
                  Text("Questions")
              }
              .tag(1)
         DataView()
              .tabItem {
                  Image(systemName: "chart.bar.fill")
                  Text("Data")
              }
              .tag(2)
         Text("Empty Tab right now")
              .tabItem {
                  Image(systemName: "bolt.horizontal.fill")
                  Text("Trend")
              }
              .tag(3)
    }
    

    在这种情况下,我设置默认选择第三个Tab。将selection 更改为所需的Tab

    【讨论】:

    • 如果您不想手动更改 selection,请从 0 开始标记号。
    【解决方案2】:

    用默认值定义一个State并将其绑定到TabView

    @State var selection = 1
    ,,,
    
        TabView(selection: $selection) 
    
    ,,,
    

    然后为每个tabItem分配一个tag

    ,,,
        .tabItem {
            Image(systemName: "bolt.horizontal.fill")
            Text("Trend")
        }.tag(1)
    ,,,
    

    现在你们可以一起使用了,selection === tag

    【讨论】:

    • 首选此答案以指定在每个 tag 上使用 tabItem
    猜你喜欢
    • 2019-11-17
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多