初始化器SwiftUI中的变量
我有以下代码:初始化器SwiftUI中的变量,swift,swiftui,swiftui-navigationlink,Swift,Swiftui,Swiftui Navigationlink,我有以下代码: import SwiftUI import QGrid struct VerCanales: View { var categoria:String @ObservedObject var canales = CargarCanales(categoriaID: categoria) var body: some View { NavigationView{ QGrid(self.canales
import SwiftUI
import QGrid
struct VerCanales: View {
var categoria:String
@ObservedObject var canales = CargarCanales(categoriaID: categoria)
var body: some View {
NavigationView{
QGrid(self.canales.listaCanales, columns: 3){item in
NavigationLink(destination:VlcPlayerDemo()){
Text(item.name).frame(width:400, height:50)
}
}
}.navigationBarTitle(Text("CHANNELS AVAILABLE"))
}
}
变量“categoria”作为参数来自上一个视图,我需要将其作为参数传递给@ObservedObject,但我有以下错误:“无法在属性初始值设定项中使用实例成员“categoria”;属性初始值设定项在“self”可用之前运行”
我是Swift语言的新手,我已经搜索过,但找不到好的解决方案您需要在VerCanales view init中初始化canales变量
struct VerCanales: View {
private var categoria: String
@ObservedObject var canales: CargarCanales
init(categoria: String, canales: CargarCanales) {
self.categoria = categoria
self.canales = canales
}
var body: some View {
NavigationView{
QGrid(self.canales.listaCanales, columns: 3){item in
NavigationLink(destination:VlcPlayerDemo()){
Text(item.name).frame(width:400, height:50)
}
}
}.navigationBarTitle(Text("CHANNELS AVAILABLE"))
}
}
感谢您的帮助,但是现在,在前面的视图中,我应该发送哪个变量<代码>导航链接(目的地:VerCanales(categia:item.categoryID,canales:HERE)){Text(item.categoryName).frame(宽:400,高:50)为此,将变量canales设置为private,并从init参数中删除canales。``@ObservedObject private var canales:CargarCanales init(categia:String){self.categoria=categoria self.canales=CargarCanales(categoriaID:categoria)}```