Slide 29
Slide 29 text
final class SceneDelegate: NSObject, UIWindowSceneDelegate, ObservableObject {
var window: UIWindow?
var overlayWindow: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = scene as? UIWindowScene else { return }
window = windowScene.keyWindow
let overlayWindow = HUDWindow(windowScene: windowScene, mainWindow: window)
overlayWindow.isHidden = false
overlayWindow.isUserInteractionEnabled = false
let hudHostingViewController = HUDHostingViewController(mainWindow: window)
hudHostingViewController.view.backgroundColor = .clear
overlayWindow.rootViewController = hudHostingViewController
let rootController = UIHostingController(rootView: PerformanceView().frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottom))
rootController.view.backgroundColor = .clear
rootController.view.translatesAutoresizingMaskIntoConstraints = false
hudHostingViewController.addChild(rootController)
hudHostingViewController.view.addSubview(rootController.view)
NSLayoutConstraint.activate([
rootController.view.leadingAnchor.constraint(equalTo: hudHostingViewController.view.leadingAnchor),
rootController.view.trailingAnchor.constraint(equalTo: hudHostingViewController.view.trailingAnchor),
rootController.view.topAnchor.constraint(equalTo: hudHostingViewController.view.topAnchor),
rootController.view.bottomAnchor.constraint(equalTo: hudHostingViewController.view.bottomAnchor)
])
rootController.didMove(toParent: hudHostingViewController)
self.overlayWindow = overlayWindow
}
}