且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SwiftUI - 如何避免导航硬编码到视图中?

更新时间:2022-12-22 15:30:39

闭包就是你所需要的!

struct ItemsView<Destination: View>: View {
    let items: [Item]
    let buildDestination: (Item) -> Destination

    var body: some View {
        NavigationView {
            List(items) { item in
                NavigationLink(destination: self.buildDestination(item)) {
                    Text(item.id.uuidString)
                }
            }
        }
    }
}

我写了一篇关于用闭包替换 SwiftUI 中的委托模式的文章.https://swiftwithmajid.com/2019/11/06/the-power-of-closures-in-swiftui/

I wrote a post about replacing the delegate pattern in SwiftUI with closures. https://swiftwithmajid.com/2019/11/06/the-power-of-closures-in-swiftui/