gpt4 book ai didi

ios - 在 Menu() 中使用多个 if 条件

转载 作者:行者123 更新时间:2023-12-04 08:30:26 25 4
gpt4 key购买 nike

我正在尝试构建一个 Menu()在 SwiftUI 中,它应该至少有两个 if 条件。
一旦我实现了第二个 if 条件,代码就不再编译。
这是一个 SwiftUI 错误,还是有人知道我做错了什么?

struct ContentView: View {

var departmentList = ["Department 1", "Department 2", "Department 3", "Department 4", "Deprtment 5"]
var salesDepartmentList = ["SalesDepartment 1", "SalesDepartment 2", "SalesDepartment 3"]
var itDepartmentList = ["ITDepartment 1", "ITDepartment 2", "ITDepartment 3"]

var body: some View {

if #available(iOS 14.0, *) {
VStack {
Menu("Menu") {
Menu("Departments") {
ForEach(departmentList, id: \.self) { department in
if department == "Department 1" {
Menu(department) {
ForEach(salesDepartmentList, id: \.self) { salesDepartment in
Button(salesDepartment, action: {
print("Do sales stuff")
})
}
}
}
// else if department == "Department 2" {
Menu(department) {
ForEach(itDepartmentList, id: \.self) { itDepartment in
Button(itDepartment, action: {
print("Do IT stuff")
})
}
}
// }
}
}
}
}
}
}
}

最佳答案

它只是对编译器变得复杂。解决方案是通过分离来简化(总是有用的)。
这是可能的方法。使用 Xcode 12.1/iOS 14.1 进行测试(您可以进一步简化它)。

struct ContentView: View {

var departmentList = ["Department 1", "Department 2", "Department 3", "Department 4", "Deprtment 5"]
var salesDepartmentList = ["SalesDepartment 1", "SalesDepartment 2", "SalesDepartment 3"]
var itDepartmentList = ["ITDepartment 1", "ITDepartment 2", "ITDepartment 3"]

var body: some View {

if #available(iOS 14.0, *) {
VStack {
Menu("Menu") {
Menu("Departments") {
ForEach(departmentList, id: \.self) { department in
if department == "Department 1" {
salesSubmenu(for: department)
}
else if department == "Department 2" {
itSubmenu(for: department)
}
}
}
}
}
}
}

func salesSubmenu(for department: String) -> some View {
Menu(department) {
ForEach(salesDepartmentList, id: \.self) { salesDepartment in
Button(salesDepartment, action: {
print("Do sales stuff")
})
}
}
}

func itSubmenu(for department: String) -> some View {
Menu(department) {
ForEach(itDepartmentList, id: \.self) { itDepartment in
Button(itDepartment, action: {
print("Do IT stuff")
})
}
}
}
}

关于ios - 在 Menu() 中使用多个 if 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65048124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com