首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从不同视图添加新项目时,SwiftUI ObservedObject不会更新

SwiftUI是一种用于构建iOS、macOS、watchOS和tvOS应用程序的声明式用户界面框架。它提供了一种直观且简洁的方式来构建用户界面,而不需要繁琐的代码。SwiftUI中的@ObservedObject属性包装器用于在视图中观察并响应外部对象的更改。

当从不同视图添加新项目时,如果使用@ObservedObject属性包装器,它将不会自动更新。这是因为@ObservedObject只会在对象的引用发生更改时更新视图,而不是在对象的属性更改时更新视图。

为了使SwiftUI中的@ObservedObject更新,在添加新项目时,需要更新@ObservedObject引用的对象,以便触发视图的更新。这可以通过以下几种方式实现:

  1. 在@ObservedObject属性包装器中使用@Published属性。@Published属性包装器可用于标记可观察对象中的属性,以便在属性更改时通知视图。例如,可以在可观察对象中定义一个@Published属性,并在视图中使用该属性来触发更新。
  2. 使用手动对象更改通知。在添加新项目时,可以手动发送对象更改通知,以便更新视图。这可以通过在可观察对象中实现自定义的属性观察器来完成。在属性更改时,手动发送对象更改通知,从而更新视图。

总结来说,当从不同视图添加新项目时,SwiftUI中的@ObservedObject不会自动更新。需要使用@Published属性包装器或手动对象更改通知来触发视图的更新。

参考链接:

  • SwiftUI官方文档:https://developer.apple.com/documentation/swiftui
  • SwiftUI @ObservedObject属性包装器:https://developer.apple.com/documentation/swiftui/observedobject
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券