【问题标题】:Multiple Destination Inside List SwiftUI列表SwiftUI中的多个目的地
【发布时间】:2020-12-16 17:51:36
【问题描述】:

我创建了一个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

【问题讨论】:

    标签: listview navigationview swiftui-navigationlink


    【解决方案1】:

    我已经修改了我的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()),...
    

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

    【讨论】:

      猜你喜欢
      • 2021-09-02
      • 1970-01-01
      • 2020-11-07
      • 2022-01-06
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多