问题标签 [observedobject]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 无法在视图之间传递数据,也无法在第二个视图中更新 - SwiftUI
我正在尝试使用@Published
并@ObservedObject
遵循本文在 2 个视图之间传递数据,但由于某种原因,我无法传递数据,@Published
只是保持初始状态,而不是在单击按钮时更改。
第一个视图ProductList2
导航到 tabView,我正在尝试将数据传递给其中一个 tabView。任何帮助,将不胜感激。
这是我正在创建的ObservableObject
视图@Published
这是我试图检索数据的 tabview 视图:
编辑:
我已经更新了导航链接,@ObservedObject
但仍然无法正常工作:
这是更新后的 ProductList2 NavigationLink:
这是@ObservedObject
在 ProductTab5View 上,我也无法预览工作:
swift - swiftUI中子视图中的@StateObject和@ObservedObject有什么区别
我创建了一个这样的模型:
模型用于“主页”视图和“主页”的子视图“HomeSub”
在 HomeSub 视图中,1 和 2 有什么区别?当我运行该项目时,它们的行为完全相同。
core-data - @StateObject 用于没有上下文的 NSManagedObject 不发布更改
就像在许多应用程序中一样,我有一个项目列表(由 Core Data 获取请求填充)、一个用于创建新项目的工作表,以及一个用于在点击列表中的一行时编辑项目的工作表。我正在尝试统一两个表单以创建和编辑更新,并将取消/保存逻辑放在表单的超级视图中。
所以我有这样的事情:
- ListView:由 Core Data 获取请求填充的行列表
- AddView:带有 FormView 嵌入 + 取消和保存按钮的 NavigationView
- EditView:带有 FormView 嵌入 + 取消和保存按钮的 NavigationView
- FormView:一个TextField,用于更新项目的名称
在 AddView 的 init() 中,我在没有任何上下文的情况下创建了一个新的 NSManagedObject(我这样做是因为我不希望在 AddView 中创建新项目时更新我的 ListView,但只有当我保存此项目时 - > 替代方法可能是使用子上下文,或根据返回对象的 isInserted 或 objectID.isTemporaryID 过滤获取请求结果)。AddView 包含一个带有 FormView 嵌入的 NavigationView、一个取消按钮和一个保存按钮。此保存按钮基于托管对象上的计算属性被禁用(对象名称不能为 nil)。
在 EditView 中,我传递了从 ListView 中点击的项目。此项目是附加到应用程序主 viewContext 的现有 NSManagedObject(来自 ListView 的获取请求)。EditView 包含一个带有 FormView 嵌入的 NavigationView、一个取消按钮和一个保存按钮(与 AddView 完全相同)。基于相同的计算属性,此保存按钮也被禁用。
我的问题是,当我从 FormView 中的 TextField 更新项目名称时,启用/禁用保存按钮的条件不适用于 AddView(当我从 FormView 更改项目名称时,此 AddView 实际上没有刷新) 但适用于 EditView(当我从 FormView 更改项目名称时,此 EditView 会刷新)。如果我在 AddView 的 init() 中将上下文附加到新的 NSManagedObject,则条件就像在 EditView 中一样。
因此,SwiftUI 似乎没有观察到没有任何上下文的 NSManagedObject?我错过了什么还是这是一个错误?
swift - 在导航到其视图之前多次加载 ObservedObject
在以下方面遇到了一些麻烦。
我在 VStack 中有一个列表,如下所示:
此列表由 coreData fetchrequest 填充。每个 NavigationLinks 导航到 CityView 并传递一个城市对象。
CityView 有一个可观察对象“notificationHandler”,定义如下:
NotificationHandler() 设置 NotificationHandler 的一个实例,并在 init 中设置一些通知观察者,如下所示:
我的问题是——当应用程序启动到它的第一个视图时,它延续了上面的列表——我得到了一些 NotificationHandler 实例的启动——列表的每一行都有一个。- 这使我相信列表中的 NavigationLinks 正在预先加载他们持有的 CityView。但是我相信情况不再如此,延迟加载是默认行为。除此之外,在 CityView 中添加 onAppear() 表明它们没有完全加载。
任何帮助都会非常感激,我无法弄清楚这是怎么发生的。
谢谢
swiftui - 调用中缺少参数“查看调用”的参数
我很难理解为什么我必须在调用此视图时提供名为 vm 的弹出视图依赖项,因为它是可观察的
swift - 如何在另一个视图中更改类的布尔实例?
我想在一个视图中点击一个按钮并更改另一个视图上的文本。更改布尔值的按钮位于 LessonOne 上,而我想在 ContentView 上显示的文本。
我的第一课中的代码是:
我的 ContentView 中的代码是:
代码运行,但它没有绑定……我继续 LessonOne,点击按钮,返回 ContentView,但没有任何改变。你能告诉我该怎么做吗?
swiftui - 即使在第一个视图 Swiftui 中设置了值,ObservedObject 也返回 nil
我有一个班级“ActualCourse”
还有两个结构“设置”和“课程”
但是当我导航到课程视图时,objCourse.id 返回 nil
我究竟做错了什么 ?我必须在一开始就给一个随机的 UUID,因为我找不到另一种方式...
xcode - 如何在此类中使用可观察对象?
我正在尝试将 Observable Objects 与此类一起使用:-
问题是,我不确定如何在 ContentView 继续
任何人都可以帮忙吗?谢谢。
swift - 即使我使用了@Published 字词,email_SignUp 等数据也不会保存在我的 ViewModel 类中
总的来说,我有一个具有 @Published 变量的 ViewModel
另外,我有一个视图,用户可以通过文本字段进行交互。在这里,我使用了一个自制的自定义 TextFields,它以图像、文本和动作为参数。
TestView 只是与“email_SignUp”和“password_SignUp”无关的其他按钮的视图。
这是我的自定义 TextField 的样子 -
在文本字段中输入数据时, - ViewModel 中的“email_SignUp”不为空,但是,在点击 NavigationLink“Next”后,ViewModel 类“Parent”中的 email_SignUp 变为空......我该怎么办?