【问题标题】:How to get a value as to which view is selected in TabView?如何获取在 TabView 中选择了哪个视图的值?
【发布时间】:2020-09-07 07:17:12
【问题描述】:

我目前正在使用 SwiftUI 开发应用程序。

此应用有 2 个视图控制一个选项卡视图。

我想获取一个值,说明在 TabView 中选择了哪个视图。

有什么办法吗?


ContentView.swift

import SwiftUI

struct ContentView: View {
    
   var body: some View {
        TabView {
           FirstView()
                .tabItem {
                        Text("First")
            }.tag(1)
           SecondView()
                .tabItem {
                        Text("Second")
            }.tag(2)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

FirstView.swift

import SwiftUI

struct FirstView: View {
    var body: some View {
        Text("FirstView")
    }
}

struct FirstView_Previews: PreviewProvider {
    static var previews: some View {
        FirstView()
    }
}

SecondView.swift

import SwiftUI

struct SecondView: View {
    var body: some View {
        Text("SecondView")
    }
}

struct SecondView_Previews: PreviewProvider {
    static var previews: some View {
        SecondView()
    }
}

Xcode:版本 11.7

斯威夫特:斯威夫特 5

【问题讨论】:

    标签: swiftui swift5


    【解决方案1】:

    您需要使用选择,如下所示

    注意:选择应该与用于标签的类型相同(并使用标签中的相应值以编程方式选择特定选项卡)

    struct ContentView: View {
       @State private var selectedTab = 1  // default selection
    
       var body: some View {
            TabView(selection: $selectedTab) {     // << here !!
               FirstView()
                    .tabItem {
                            Text("First")
                }.tag(1)
               SecondView()
                    .tabItem {
                            Text("Second")
                }.tag(2)
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-02-02
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多