如何在 SwiftUI 中为 NavigationLink 创建工厂方法?

Posted

技术标签:

【中文标题】如何在 SwiftUI 中为 NavigationLink 创建工厂方法?【英文标题】:How to create a factory method for NavigationLink in SwiftUI? 【发布时间】:2021-01-17 05:01:22 【问题描述】:

我想为 NavigationLink:s 创建一个工厂方法如下:

func makeNavigationLink(label: String, destination: View) -> some View 
    NavigationLink(destination: StatsView(), label: 
        Text(label)
            .foregroundColor(.white)
            .font(.title)
    )

这会产生错误:Protocol 'View' can only be used as a generic constraint because it has Self or associated type requirements

这应该如何编码?

【问题讨论】:

【参考方案1】:

添加视图约束。

func makeNavigationLink<Destination: View>(label: String, destination: Destination) -> some View 
        NavigationLink(destination: StatsView(), label: 
            Text(label)
                .foregroundColor(.white)
                .font(.title)
        )
    

【讨论】:

以上是关于如何在 SwiftUI 中为 NavigationLink 创建工厂方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中为 NavigationLink 创建工厂方法?

如何在按钮单击时在 SwiftUI 中为 TextField 设置文本

如何在 SwiftUI 中为 Start->Max->Start 设置动画?

如何在swift / SwiftUI中为滑动手势设置菜单栏图标的操作

如何在 SwiftUI 中为 WKWebView 创建浏览器选项卡

如何在 SwiftUI 中为按下时的导航链接设置动画?