Swift SwiftUI上でUIKit使用、アプリバッググランド遷移をUIKit側に通知
2021年8月19日
NotificationCenterで通知
SwiftUI側
import SwiftUI
struct MainView: View {
@Environment(\.scenePhase) private var scenePhase
var body: some View {
RefillView()
.onChange(of: scenePhase, perform: { value in
switch(value) {
case .active:
print("active")
case .background:
print("background")
NotificationCenter.default.post(name: .aplBackGround, object: nil)
case .inactive:
print("inactive")
@unknown default:
print("default")
}
})
}
}
struct MainView_Previews: PreviewProvider {
static var previews: some View {
MainView()
}
}
extension Notification.Name {
static let aplBackGround = Notification.Name("aplBackGround")
}
UIKit側
:
:
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(aplBackGround(notification:)), name: .aplBackGround, object: nil)
}
@objc func aplBackGround(notification: NSNotification?) {
print(#function)
}
:
: