xcode 使用swift UI选择选项卡时,onTapGesture不执行

kmpatx3s  于 2022-12-14  发布在  Swift
关注(0)|答案(1)|浏览(236)

我只是尝试使用onTapGesture函数来改变变量selectedTab的值,当用户选择一个制表符时。这个onTapGesture函数似乎不起作用,因为我的变量没有改变值,当我添加一个甚至不执行的print语句时。

@Binding var selectedTab: Bool
    @EnvironmentObject var authViewModel: AuthViewModel
    var body: some View {
        TabView(){
            NavigationView(){
                FeedView()
            }
            .tabItem {
                Image(systemName: "h.circle")
                    .onTapGesture {
                        self.selectedTab = false
                    }
            }
5tmbdcev

5tmbdcev1#

您可以接收tabBarTabView(selection:).tag.onReceive的更改。另外,不要忘记在文件顶部添加import Combine
下面是一个例子:

@State private var selectedTab = 1
var body: some View {
    TabView(selection: $selectedTab) {
        NavigationView {
            Text("Navigation view #1")
        }
        .tabItem {
            Image(systemName: "h.circle")
            Text("Home")
        }.tag(1)
        
        NavigationView {
            Text("Navigation view #2")
        }
        .tabItem {
            Image(systemName: "d.circle")
            Text("Home")
        }.tag(2)
    }
    .onReceive(Just(selectedTab)) { _ in
        print("Your text here")
    }
}

相关问题