SwiftUI 动态选项卡视图

问题描述

我试图显示一个动态页面选项卡视图,但它在没有错误代码的情况下一直崩溃。当Tab视图的数量减少时,发生崩溃。我找不到我的代码有什么问题。所以我在示例项目中进行了测试,但它仍然相同。在示例项目中,当我单击 3 然后单击其他数字时没有问题,但是当我再次单击 3 并滚动选项卡视图时,它会崩溃。这是我的示例项目。

struct ContentView: View {
    @Observedobject var dataClass = DataClass()
    var body: some View {
        vstack(){
            List{
                ForEach(3..<6){ i in
                    Text("\(i)")
                        .onTapGesture {
                            self.dataClass.load(num: i)
                        }
                }
            }
            if dataClass.data.count != 0{
                TabView{
                    ForEach(dataClass.data.indices,id: \.self){ i in
                        Text(dataClass.data[i].alp)
                    }
                }.tabViewStyle(PageTabViewStyle())
                .padding(.horizontal)
                .background(Color.red)
            }
        }
    }
}

class DataClass : ObservableObject {
    @Published var data : [DataStruct] = [DataStruct]()
    
    init() {
        
    }
    func load(num : Int){
        if num == 3 {
            data = [DataStruct(num: 1,alp: "a"),DataStruct(num: 2,alp: "b"),DataStruct(num: 3,alp: "c")]
        }
        if num == 4 {
            data = [DataStruct(num: 4,alp: "d"),DataStruct(num: 5,alp: "e"),DataStruct(num: 6,alp: "f"),DataStruct(num: 7,alp: "g")]
        }
        if num == 5 {
            data = [DataStruct(num: 8,alp: "h"),DataStruct(num: 9,alp: "i"),DataStruct(num: 10,alp: "j"),DataStruct(num: 11,alp: "k")]
        }
    }
}
struct DataStruct {
    var num : Int
    var alp : String
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...