我正在实现一个非常自定义的NavigationLink MenuItem,它想在整个项目中重复使用。这是一个符合View和实现的结构,var body : some View其中包含NavigationLink。我需要以某种方式将将要呈现的视图存储NavigationLink在主体中,MenuItem但尚未这样做。
我destinationView在MenuItem的主体中定义为,some View并尝试了两个初始化方法:
这似乎太简单了:
struct MenuItem: View {
private var destinationView: some View
init(destinationView: View) {
self.destinationView = destinationView
}
var body : some View {
// Here I'm passing destinationView to NavigationLink...
}
}
Run Code Online (Sandbox Code Playgroud)
->错误:由于协议“视图”具有“自身”或相关类型要求,因此只能用作通用约束。
第二次尝试:
struct MenuItem: View {
private var destinationView: some View
init<V>(destinationView: V) where V: View {
self.destinationView = destinationView …Run Code Online (Sandbox Code Playgroud)