多个目标内列表 SwiftUI

Multiple Destination Inside List SwiftUI

我创建了一个 MenuList、一个 MenuListElementView 和一个 MenuListElement。在我的 MenuList

struct MenuList {
static let listData: [MenuListElement] = [
    MenuListElement(elementID: 0, icon: Constants.IconNames.smileyFace, title: Constants.IconTitles.title1, color: Constants.Colors.gray, numbers: 2),... 
 }

依此类推我创建了 10 个单独的列表元素。

在我的MenuListElement

struct MenuListElement: Identifiable {
var id: Int {
    return elementID
}
var elementID: Int
var icon: String
var title: String
var color: Color
var numbers: Int
}

在我的 MenuListElementView 中,我简单地设计了每个列表元素必须的样子。

最后,我设计了这个MenuView

现在,我想做的是在每次点击此代码时 MenuListElement 前往不同的目的地。

 NavigationView{
            List(MenuList.listData) { item in
                    MenuListElementView(item: item)
            }
        }

假设我想在 MenuLView 上点击 Yazarlar 时前往 AuthorView,在点击 Arama 时前往 SearchView。我想要 10 个不同的目的地 View.

我修改了我的 MenuListElement 以便能够用它发送内部视图。

struct MenuListElement: Identifiable {
var id: Int {
    return elementID
}
var elementID: Int
var icon: String
var title: String
var color: Color
var numbers: Int
var view: Any
}

我已将 List 视图更改为

List(MenuList.listData) { item in
            Button(action: {
                self.isOpen = true
            }) {
                MenuListElementView(item: item)
                    .fullScreenCover(isPresented: $isOpen) {
                        AnyView(_fromValue: item.view)
                    }
            }
        }

并将我的 MenuList 更改为

struct MenuList {
static let listData: [MenuListElement] = [
    MenuListElement(elementID: 0, icon: Constants.IconNames.smileyFace, title: Constants.IconTitles.title1, color: Constants.Colors.gray, numbers: 2, view: MembershipView()),...

通过这种方式,每个列表元素中都有视图信息,所以通过一个按钮,我可以直接传递到我想要的视图。