Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 选项卡视图选择重置为图纸显示的第一个选项卡 更新:_Ios_Swift_Swiftui_Tabview - Fatal编程技术网

Ios 选项卡视图选择重置为图纸显示的第一个选项卡 更新:

Ios 选项卡视图选择重置为图纸显示的第一个选项卡 更新:,ios,swift,swiftui,tabview,Ios,Swift,Swiftui,Tabview,感谢Harshil&Sumit指出我太笨了,以至于没有意识到我使用的是id(),而不是tag()。如果你能从这个问题中学到什么,那就是: 当你独自做一个项目时,你往往会失明。你看不到自己的错误。做代码审查。请朋友和同事检查一下。这是个好主意 原始问题: 在我的SwiftUI项目中,我使用带有$selection绑定的选项卡视图,以便能够以编程方式切换选项卡 问题在于:例如,当我在选项卡视图中包含的第二个视图上显示图纸时,选择将重置为第一个选项卡 对我来说,这似乎是一个SwiftUI错误——但是否

感谢Harshil&Sumit指出我太笨了,以至于没有意识到我使用的是
id()
,而不是
tag()
。如果你能从这个问题中学到什么,那就是:

当你独自做一个项目时,你往往会失明。你看不到自己的错误。做代码审查。请朋友和同事检查一下。这是个好主意

原始问题: 在我的SwiftUI项目中,我使用带有
$selection
绑定的
选项卡视图
,以便能够以编程方式切换选项卡

问题在于:例如,当我在
选项卡视图
中包含的第二个视图上显示图纸时,选择将重置为第一个选项卡

对我来说,这似乎是一个SwiftUI错误——但是否有解决方法

下面是一个演示该行为的工作示例。(使用Xcode 12.4测试)

如何测试:转到第二个选项卡,点击按钮“2”,您将看到返回到第一个选项卡。一旦从选项卡视图中删除
选择
属性,这种情况就不再发生

干杯 Orlando不使用id.id(TabPosition.one)像这样分配标签.tag(TabPosition.one)像这样使用
.tag()

struct ContentView: View {
    @State private var selection = 1
    var body: some View {
        TabView(selection: $selection) {
            One()
                .tabItem { Label("One", systemImage: "1.circle") }
                .tag(1)
            Two()
                .tabItem { Label("Two", systemImage: "2.circle") }
                .tag(2)
            Three()
                .tabItem { Label("Three", systemImage: "3.circle") }
                .tag(3)
        }
    }
}

天哪,这真是太蠢了。TFW您意识到您一直认为自己会使用
标记
,您需要这样的答案才能看出您错了。