Swiftui 找不到PageSettings类型的ObservableObject
我想使用另一个视图来调用@EnvironmentObject来更改它的值。但我得到了这个错误。这是我的语法 我的班级Swiftui 找不到PageSettings类型的ObservableObject,swiftui,ios13,Swiftui,Ios13,我想使用另一个视图来调用@EnvironmentObject来更改它的值。但我得到了这个错误。这是我的语法 我的班级 class PageSettings: ObservableObject { @Published var currentPage = "splash" @Published var jobTitle = "Pick a job!" } 视图(在该视图中,我得到一个文本“Pick A job!”,我想在单击另一个视图中名为“JobTitleView”的另一
class PageSettings: ObservableObject {
@Published var currentPage = "splash"
@Published var jobTitle = "Pick a job!"
}
视图(在该视图中,我得到一个文本“Pick A job!”,我想在单击另一个视图中名为“JobTitleView”的另一个选项时对其进行更改)
职务头衔视图
struct JobTitleView: View {
@EnvironmentObject var title: PageSettings
let options = ["Manager", "Employee"]
var body: some View {
ForEach(options) { item in
Button(action:{
self.title.jobTitle = item
UIApplication.shared.windows[0].rootViewController?.dismiss(animated: true, completion: {})
}){
Text(item).font(.custom("Avenir Next Regular", size: 30))
}
}
}
}
当我按下某个项目时,出现以下错误:
致命错误:未找到PageSettings类型的ObservableObject。
页面设置的View.environmentObject(:)可能作为此视图的祖先丢失。示例:file/BuildRoot/Library/Caches/com.apple.xbs/Sources/Monoceros_Sim/Monoceros-39.4.3/Core/environmentObject.swift,第55行
另外,我得到了一个扩展,可以使用ForEach“无id”
在创建
Test
的地方,必须将其用作
Test().environmentObject(PageSettings())
最可能的情况是在这个自定义创建中(在视图生成器层次结构中,为子视图自动注入环境对象,但在本例中,我认为不是这样)
您知道如何将子视图的值注入到视图中吗?因为如果我这样做:envar=“HI”ViewA(envar)->ViewB(envar)(我将在我的ViewB中获得“HI”,并且我只能在ViewB中更改该值,我想使用我的ViewB更改envar的值)
extension String: Identifiable {
public var id: String {
return self
}
}
Test().environmentObject(PageSettings())
let alertHC = UIHostingController(rootView:
JobTitleView().environmentObject(self.pageSettings))