AppDelegate和ContentView()之间的SwiftUI通信。

问题描述 投票:0回答:1

我的SwiftUI应用中出现了一个无声的远程通知,它没有被UNUserNotificationCenter接收,而是被旧的AppDelegate didReceiveNotification func接收。它没有被UNUserNotificationCenter接收到,而是被旧的AppDelegate didReceiveNotification func接收到。通知ContentView()发生变化的解决方案是什么?AppDelegate中的ObservableObject?

swiftui cloudkit remote-notifications
1个回答
1
投票

你可以声明一个符合以下条件的商店 ObservableObject 中,并将其设置为ContentView的环境对象。

// AppDelegate.swift
// in the class
let store = Store()

// in the applicationDidFinishLaunching(_:) method
window.contentView = NSHostingView(rootView: contentView.environmentObject(store))
// ContentView.swift
// in the struct
@EnvironmentObject var store: Store

环境对象是一个引用,所以你可以把值传入它。和使用 ObservableObject. 当你完成更新时,只需调用 objectWillChange.send() 或将该属性标记为@Published。而ContentView在接到通知后将会更新。

© www.soinside.com 2019 - 2024. All rights reserved.