我有一个macOS故事板应用程序,其中我有一个使用NSHostingController托管的SwiftUI视图。我需要从我的EnvironmentObject中将一个SwiftUI视图传递给这个SwiftUI视图。我无法做到这一点。我目前已经编写了这段代码,但它不起作用。这里有什么问题?
import Cocoa
import SwiftUI
class SearchText: ObservableObject {
@Published var text = ""
}
class HostingController: NSHostingController<
我希望使用ObservableObject动态地在子视图之间切换。注意,在下面的代码中,行AnotherView().environmentObject(currentState)可以工作,但是行dynamicallyAddedSecondView与No ObservableObject of type CurrentState found. A View.environmentObject(_:) for CurrentState may be missing as an ancestor of this view.一起失败了,是否有一种方法可以将动态添加的视图视为ContentView环境
我成功地将environmentObject appSettings传递到了我的视图中。我可以使用它来修改我的字体和我的视图中的选择器。但是,如果我试图访问视图init()中的environmentObject发布变量,它将崩溃:
Thread 1: Fatal error: No ObservableObject of type AppSettings found.
A View.environmentObject(_:) for AppSettings may be missing as an ancestor of this view.
在自定义的environmentObject视图初
我正在尝试创建某种类型的解决方案,用于向SwiftUI视图模型注入依赖项,但我不知道我是在做什么,还是需要把它带回绘制表。
struct MyAppName: App {
private static var serviceToInject = ServiceToInject()
@StateObject var viewModel1 = ViewModel1(service: serviceToInject)
@StateObject var viewModel2 = ViewModel2(service: serviceToInject)
var body: some Scene {
我的应用程序中有三个视图。第一个显示的是游戏列表。第二个有每个游戏的玩家列表。第三个有每个玩家的分数列表。所以它的结构是这样的:
struct GameView: View {
@environmentObject var model: Model
var body: some View {
NavigationView {
List(model.games) {game in
NavigationLink(destination: PlayerView(game: game)) {
// Some View
让我们考虑最基本的可用流之一,其中您有一个使用其他辅助视图填充数据的视图。即设置。
在Settings视图中,我们显示了两个项:
SETTINGS
A - Pick a Color
B - Pick a Country
当用户点击其中一项时,应用程序将呈现一个新视图,该视图可用于选择颜色或其他可用于选择国家的视图。
当用户使用其中一个选择视图完成时,Selection View将被关闭,所选内容将被传回给现在显示新信息的Settings视图:
SETTINGS
A - Green
B - Spain
使用delegates和protocols,我们可以轻松地实现这段代码,只需将Setti
在使用documentPicker选择文档之后,我试图获得一个列表视图。得到以下错误..。
Fatal error: No ObservableObject of type Switcher found.
A View.environmentObject(_:) for Switcher may be missing as an ancestor of this view.: file /BuildRoot/Library/Caches/com.apple.xbs/Sources/Monoceros/Monoceros-30.4/Core/EnvironmentObject.swift, li
我有下面的类,用于在汉堡菜单显示或不显示时保持它的状态
class Menu: ObservableObject {
@Published var isActive: Bool = false
}
我在Scene Delegate中实例化它
let contentView = ContentView().environmentObject(Menu())
然后在一个简单的视图中,我尝试切换isActive布尔值,但是我得到了下面的错误
struct Button: View {
@EnvironmentObject var menuState: Menu
var b
我想让一个工作者任务更新一个SwiftUI视图。 worker任务正忙于执行应用程序的程序性工作-播放声音,并触发基于计时器的事件。我想在这些计时器事件期间在SwiftUI视图中闪现几个图标。所以我想在这些图标视图中触发视图刷新。 因此,我创建了一个名为Settings的environmentObject。它在App Delegate中实例化,并附加到SceneDelegate中的根视图。 设置对象在SwiftUI视图层次结构中工作得很好。 问题是可怕的: Fatal error: No ObservableObject of type Settings found. A View.envi
我的第一个视图可以从API请求中获取所有数据,然后打开第二个视图更改API请求数据,就会崩溃。
下面是错误
Fatal error: No ObservableObject of type NetworkManager found.
A View.environmentObject(_:) for NetworkManager may be missing as an ancestor of this view.: file /BuildRoot/Library/Caches/com.apple.xbs/Sources/Monoceros_Sim/Monoceros-39.3/Core/Env
如何使用我的SwiftUI中的按键信息?我尝试使用@EnvironmentObject对象与我的SwiftUI共享密钥,但每次在sendKeybKey中出现崩溃:线程1:致命错误:找不到UserData类型的ObservableObject。此视图的祖先可能缺少UserData的View.environmentObject(_:)。In .environmentObject已经在SceneDelegate中使用了,但是was是错误的吗?我的代码: class KeyTestController<Content>: UIHostingController<Content>
我想展示一个数学分数。为此,我有一个包含分子视图(称为ContainerView)的VStack、一个用作分数线的矩形和一个分母视图(与分子的类型相同)。由于分数是可编辑的,分子和分母的大小可以改变,因此分数线必须相应地进行调整。我的第一个尝试是将分数线放在背景中,并使用几何阅读器仅根据分子和分母的大小获得分数的框架。这样,分数线就在背景的中心,大小和我想要的一样大。代码如下: struct FractionView: View {
@EnvironmentObject var buffer: Buffer
var numeratorBufferIndex: Int
var denomin
像这样的SwiftUI错误经常出现在StackOverflow上:
Thread 1: Fatal error: No ObservableObject of type Foo found. A View.environmentObject(_:) for Foo may be missing as an ancestor of this view.
答案总是将一个Foo实例传递给视图的environmentObject()函数。但是,当将Foo的子类传递给environmentObject()时,这似乎不起作用。
Foo.swift
class Foo: ObservableObject {