【发布时间】:2023-02-14 21:54:46
【问题描述】:
我正在尝试将不同的功能传递到按钮和 NavigationLink 的自定义样式视图中。
struct commonButtonClass: View {
let buttonText: String
var body: some View {
Button(action: {
// a different function in each instance. it can be for example the login or register function passed in
}
}, label: {
Text(buttonText)
.font(.system(size:30))
})
}
}
但是我找不到将函数传递到视图中的方法。我正在尝试为变量分配 CGFunction,然后在调用此视图时传入 login() 或 register(),但它不起作用。
我对 NavigationLink 的自定义样式的目的地尝试了类似的方法,但分配 View 或 String 允许我将其设置为下一个目的地,如 LoginView() 或 LandingView()。
struct commonNavigationLinkClass: View {
let target: String
// the desired destination
let linkText: String
var body: some View {
NavigationLink(destination: View(target), label: {
Text(linkText)
.font(.system(size:30))
})
}
}
对于按钮,我尝试使用 CGFunction 类将函数传递给按钮,但它给了我类和内容不兼容的错误。
对于 NavigationLink,我尝试使用带有视图的字符串(//此处为字符串),但它不起作用。也没有将目标设置为任何视图的类。
也许有更好的方法可以在不传递内容的情况下解决这个问题,但我不太确定如何实现所有这些类型的按钮和 NavigationLink 的样式。除了字体还有其他样式,但它只是颜色和边框所以为了简单起见我删除了它
【问题讨论】: