Ios SwiftUI在特定选项卡索引/标记上加载TabView会导致第一个选项卡也加载

Ios SwiftUI在特定选项卡索引/标记上加载TabView会导致第一个选项卡也加载,ios,swiftui,Ios,Swiftui,很抱歉这个糟糕的标题 我有一个包含5项的选项卡视图,我希望我的应用程序从第二个选项卡开始。我注意到,如果我从第二个/第三个/第四个/第五个选项卡中的任何一个开始,第一个选项卡的onAppear将始终启动 有没有办法防止这种情况 struct MainView: View { @State private var currentTab = 1 // try change this to 2/3/4 and notice the first tab onAppear always fires

很抱歉这个糟糕的标题

我有一个包含5项的选项卡视图,我希望我的应用程序从第二个选项卡开始。我注意到,如果我从第二个/第三个/第四个/第五个选项卡中的任何一个开始,第一个选项卡的onAppear将始终启动

有没有办法防止这种情况

struct MainView: View {
    @State private var currentTab = 1 // try change this to 2/3/4 and notice the first tab onAppear always fires
    
    var body: some View {
        return TabView(selection: self.$currentTab) {
            Colors.brown
                .tabItem {
                    Text("0")
                }
                .tag(0)
                .onAppear(perform: {
                    print(self.currentTab) // why does this always print regardless of initial currentTab = 1/2/3/4?
                })
            
            
            Colors.orange
                .tabItem {
                    Text("1")
                }
                .tag(1)
                .onAppear(perform: {
                    print(self.currentTab) // this prints
                })
            
            Colors.red
                .tabItem {
                    Text("2")
                }
                .tag(2)
                .onAppear(perform: {
                    print(self.currentTab)
                })
            
            
            Color.yellow
                .tabItem {
                    Text("3")
                }
                .tag(3)
                .onAppear(perform: {
                    print(self.currentTab)
                })
            
            
            Color.purple
                .tabItem {
                    Text("4")
                }
                .tag(4)
                .onAppear(perform: {
                    print(self.currentTab)
                })
        }
    }
}

它没有指定调用onAppear的次数和时间(除了它出现,但出现在哪里是一个问题),因此我不建议对此有任何期望。它没有指定调用onAppear的次数和时间(除了它出现,但出现在哪里是一个问题),因此,我不建议对此有任何期望。