SwiftUI with NotificationCenter publishers
Can you use onAppear
?
...
...
var body: some View {
... your body code
}.onAppear(perform: loadNotification)
private func loadNotification() {
NotificationCenter.default.publisher(
....
}
See onAppear
:
https://developer.apple.com/documentation/swiftui/view/3278614-onappear
It seems to be the replacement for viewDidLoad
@State
is not ready yet in init, so it cannot be used for such purposes. The approach can be as follows:
var cancellables = Set<AnyCancellable>()
init() {
NotificationCenter.default.publisher(for: UIApplication.willResignActiveNotification)
.sink(receiveValue: { _ in
print(">> in init")
})
.store(in: &cancellables)
}
in such defined cancellables
you can store all subscribers created in init
, but you will not be able to use it later in code, but this approach is good for once defined notification handlers.