SwiftUI TabView 重新排列 Tab 键顺序保留

joe*_*e11 8 uitabview ios tabview swift swiftui

看起来Apple的TabView支持自动重新排列,但是在单击选项卡后它很快就会失去重新排列。

这是我的游乐场代码。

import SwiftUI
import PlaygroundSupport

struct ContentView: View {
    @State var arr = ["1","2","3","4","5","6"]
    var body: some View {
        TabView {
            ForEach(self.arr, id: \.self) { name in
                Text("Tab \(name) content")
                    .tabItem {
                        Image(systemName: "\(name).square.fill")
                        Text(name)
                    }
            }
        }
        .font(.headline)
    }
}

PlaygroundPage.current.setLiveView(ContentView())
Run Code Online (Sandbox Code Playgroud)

这是我在 gif 中执行的步骤。

  1. 我从选项卡“1”开始
  2. 我转到“更多”选项卡,然后单击“编辑”
  3. 我将选项卡“2”与选项卡“3”交换
  4. 关闭重新排列屏幕
  5. 然后,当我单击选项卡“2”(现在位于位置 3)时,应用程序会将选项卡重置回原来的顺序!

问题演示

我不确定这是否是一个 SwiftUI 错误,或者是否有一个我应该听的 onRearrange 钩子或者什么。